Základní vstupně-výstupní operace
Kromě toho, že poskytujeme nástroje pro čtení prostorových datových souborů, modul prostorových vstupně-výstupních operací zveřejňuje základní knihovny pro čtení a zápis XML a dat s oddělovači rychle a efektivně.
Obor atlas.io.core
názvů obsahuje dvě třídy nízké úrovně, které mohou rychle číst a zapisovat data CSV a XML. Tyto základní třídy používají čtečky prostorových dat a zapisovače v modulu Prostorové vstupně-výstupní operace. Můžete je použít k přidání další podpory čtení a zápisu souborů CSV nebo XML.
Čtení souborů s oddělovači
Třída atlas.io.core.CsvReader
čte řetězce, které obsahují datové sady s oddělovači. Tato třída poskytuje dvě metody pro čtení dat:
- Funkce
read
přečte úplnou datovou sadu a vrátí dvojrozměrné pole řetězců představující všechny buňky datové sady s oddělovači. - Funkce
getNextRow
přečte každý řádek textu v sadě dat s oddělovači a vrátí matici řetězce představující všechny buňky v daném řádku datové sady. Uživatel může tento řádek zpracovat a před zpracováním dalšího řádku likvidovat nepotřebnou paměť z daného řádku. Funkce je tedy efektivnější v paměti.
Ve výchozím nastavení používá čtečka jako oddělovač znak čárky. Oddělovač lze však změnit na libovolný jeden znak nebo nastavit na 'auto'
. Když nastavíte hodnotu 'auto'
, čtenář analyzuje první řádek textu v řetězci. Potom vybere nejběžnější znak z následující tabulky, který se použije jako oddělovač.
Delimiter | Znak |
---|---|
Comma | , |
Tab | \t |
Potrubí | | |
Tato čtečka také podporuje kvalifikátory textu, které slouží ke zpracování buněk obsahujících znak oddělovače. Znak uvozovek ('"'
) je výchozím textovým kvalifikátorem, ale lze ho změnit na libovolný jednotlivý znak.
Zápis souborů s oddělovači
Zapíše atlas.io.core.CsvWriter
pole objektů jako řetězec s oddělovači. Libovolný jeden znak lze použít jako oddělovač nebo textový kvalifikátor. Výchozí oddělovač je čárka (','
) a výchozí textový kvalifikátor je znak uvozovek ('"'
).
Postupujte podle kroků pro použití této třídy:
- Vytvořte instanci třídy a volitelně nastavte vlastní oddělovač nebo kvalifikátor textu.
- Zapisujte data do třídy pomocí
write
funkce nebowriteRow
funkce.write
Pro funkci předejte dvojrozměrné pole objektů představující více řádků a buněk. Pokud chcete funkci použítwriteRow
, předejte pole objektů představujících řádek dat s více sloupci. - Voláním
toString
funkce načtěte řetězec s oddělovači. - Volitelně můžete volat metodu
clear
, aby zapisovač byl opakovaně použitelný a snížil jeho přidělení prostředků, nebo zavolejte metodudelete
pro odstranění instance zapisovače.
Poznámka:
Počet zapsaných sloupců bude omezen na počet buněk v prvním řádku dat předaných zapisovači.
Čtení souborů XML
Třída atlas.io.core.SimpleXmlReader
je rychlejší při analýze souborů XML než DOMParser
. Třída atlas.io.core.SimpleXmlReader
však vyžaduje, aby soubory XML byly dobře formátovány. Soubory XML, které nejsou dobře naformátované, například chybějící koncové značky, můžou vést k chybě.
Následující kód ukazuje, jak pomocí SimpleXmlReader
třídy parsovat řetězec XML do objektu JSON a serializovat ho do požadovaného formátu.
//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.
}
}
}
Zápis souborů XML
Třída atlas.io.core.SimpleXmlWriter
zapisuje dobře formátovaný XML efektivním způsobem.
Následující kód ukazuje, jak pomocí SimpleXmlWriter
třídy vygenerovat dobře formátovaný řetězec XML.
//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();
Vygenerovaný kód XML z výše uvedeného kódu by vypadal následovně.
<?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>
Další kroky
Další informace o třídách a metodách používaných v tomto článku:
Další ukázky kódu pro přidání do map najdete v následujících článcích: