Aracılığıyla paylaş


Çekirdek GÇ işlemleri

Uzamsal veri dosyalarını okumak için araçlar sağlamaya ek olarak, uzamsal GÇ modülü temel alınan kitaplıkları XML'yi ve sınırlandırılmış verileri hızlı ve verimli bir şekilde okumak ve yazmak için kullanıma sunar.

Ad alanı, atlas.io.core CSV ve XML verilerini hızla okuyabilen ve yazabilen iki alt düzey sınıf içerir. Bu temel sınıflar Uzamsal GÇ modülünde uzamsal veri okuyucuları ve yazıcıları güçlendirmektedir. CSV veya XML dosyaları için daha fazla okuma ve yazma desteği eklemek için bunları kullanabilirsiniz.

Sınırlandırılmış dosyaları okuma

sınıfı, atlas.io.core.CsvReader sınırlandırılmış veri kümeleri içeren dizeleri okur. Bu sınıf, verileri okumak için iki yöntem sağlar:

  • İşlev, read tam veri kümesini okur ve sınırlandırılmış veri kümesinin tüm hücrelerini temsil eden iki boyutlu bir dize dizisi döndürür.
  • İşlev, getNextRow sınırlandırılmış bir veri kümesindeki her metin satırını okur ve bu veri kümesindeki tüm hücreleri temsil eden bir dize dizisi döndürür. Kullanıcı satırı işleyebilir ve bir sonraki satırı işlemeden önce bu satırdaki gereksiz belleği atabilir. Bu nedenle işlev bellek açısından daha verimlidir.

Varsayılan olarak, okuyucu sınırlayıcı olarak virgül karakterini kullanır. Ancak, sınırlayıcı herhangi bir tek karaktere değiştirilebilir veya olarak 'auto'ayarlanabilir. olarak ayarlandığında 'auto', okuyucu dizedeki metnin ilk satırını analiz eder. Ardından, sınırlayıcı olarak kullanılacak en yaygın karakteri aşağıdaki tablodan seçer.

Sınırlayıcı Karakter
Comma ,
Sekme \t
Boru |

Bu okuyucu, sınırlayıcı karakteri içeren hücreleri işlemek için kullanılan metin niteleyicilerini de destekler. Tırnak işareti ('"') karakteri varsayılan metin niteleyicidir, ancak herhangi bir tek karaktere değiştirilebilir.

Sınırlandırılmış dosyaları yazma

bir atlas.io.core.CsvWriter nesne dizisini sınırlandırılmış dize olarak yazar. Herhangi bir tek karakter sınırlayıcı veya metin niteleyici olarak kullanılabilir. Varsayılan sınırlayıcı virgül (',') ve varsayılan metin niteleyicisi ise tırnak ('"') karakteridir.

Bu sınıfı kullanmak için adımları izleyin:

  • Sınıfının bir örneğini oluşturun ve isteğe bağlı olarak özel bir sınırlayıcı veya metin niteleyicisi ayarlayın.
  • işlevini veya işlevini kullanarak write sınıfına writeRow veri yazın. işlevi için write , birden çok satır ve hücreyi temsil eden iki boyutlu bir nesne dizisi geçirin. işlevini kullanmak writeRow için, birden çok sütun içeren bir veri satırını temsil eden bir nesne dizisi geçirin.
  • toString Sınırlandırılmış dizeyi almak için işlevini çağırın.
  • İsteğe bağlı olarak, yazıcıyı clear yeniden kullanılabilir hale getirmek ve kaynak ayırmasını azaltmak için yöntemini çağırın veya yazıcı örneğini atmak için yöntemini çağırın delete .

Not

Yazılan sütun sayısı, yazıcıya geçirilen verilerin ilk satırındaki hücre sayısıyla kısıtlanır.

XML dosyalarını okuma

atlas.io.core.SimpleXmlReader SıNıFı, XML dosyalarını ayrıştırmada değerinden daha DOMParserhızlıdır. Ancak, sınıfı XML dosyalarının atlas.io.core.SimpleXmlReader iyi biçimlendirilmesi gerekir. İyi biçimlendirilmemiş XML dosyaları, örneğin eksik kapanış etiketleri hataya neden olabilir.

Aşağıdaki kod, xml dizesini SimpleXmlReader bir JSON nesnesine ayrıştırmak ve istenen biçimde seri hale getirmek için sınıfının nasıl kullanılacağını gösterir.

//Create an instance of the SimpleXmlReader and parse an XML string into a JSON object.
var xmlDoc = new atlas.io.core.SimpleXmlReader().parse(xmlStringToParse);

//Verify that the root XML tag name of the document is the file type your code is designed to parse.
if (xmlDoc && xmlDoc.root && xmlDoc.root.tagName && xmlDoc.root.tagName === '<Your desired root XML tag name>') {

    var node = xmlDoc.root;

    //Loop through the child node tree to navigate through the parsed XML object.
    for (var i = 0, len = node.childNodes.length; i < len; i++) {
        childNode = node.childNodes[i];

        switch (childNode.tagName) {
            //Look for tag names, parse and serialized as desired.
        }
    }
}

XML dosyaları yazma

sınıfı, atlas.io.core.SimpleXmlWriter iyi biçimlendirilmiş XML'i bellek verimli bir şekilde yazar.

Aşağıdaki kod, iyi biçimlendirilmiş bir XML dizesi oluşturmak için sınıfının nasıl kullanılacağını SimpleXmlWriter gösterir.

//Create an instance of the SimpleXmlWriter class.
var writer = new atlas.io.core.SimpleXmlWriter();

//Start writing the document. All write functions return a reference to the writer, making it easy to chain the function calls to reduce the code size.
writer.writeStartDocument(true)
    //Specify the root XML tag name, in this case 'root'
    .writeStartElement('root', {
        //Attributes to add to the root XML tag.
        'version': '1.0',
        'xmlns': 'http://www.example.com',
         //Example of a namespace.
        'xmlns:abc': 'http://www.example.com/abc'
    });

//Start writing an element that has the namespace abc and add other XML elements as children.
writer.writeStartElement('abc:parent');

//Write a simple XML element like <title>Azure Maps is awesome!</title>
writer.writeElement('title', 'Azure Maps is awesome!');

//Close the element that we have been writing children to.
writer.writeEndElement();

//Finish writing the document by closing the root tag and the document.
writer.writeEndElement().writeEndDocument();

//Get the generated XML string from the writer.
var xmlString = writer.toString();

Yukarıdaki koddan oluşturulan XML aşağıdaki gibi görünür.

<?xml version="1.0" encoding="UTF-8"?>
<root version="1.0" xmlns="http://www.example.com" xmlns:abc="http://www.example.com/abc">
    <abc:parent>
        <title>Azure Maps is awesome!</title>
    </abc:parent>
</root>

Sonraki adımlar

Bu makalede kullanılan sınıflar ve yöntemler hakkında daha fazla bilgi edinin:

CsvReader

CsvWriter

SimpleXmlReader

SimpleXmlWriter

Haritalarınıza eklenecek daha fazla kod örneği için aşağıdaki makalelere bakın:

Desteklenen veri biçimi ayrıntıları