Ç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ınawriteRow
veri yazın. işlevi içinwrite
, birden çok satır ve hücreyi temsil eden iki boyutlu bir nesne dizisi geçirin. işlevini kullanmakwriteRow
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ındelete
.
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 DOMParser
hı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:
Haritalarınıza eklenecek daha fazla kod örneği için aşağıdaki makalelere bakın: