Základní vstupně-výstupní operace
Kromě poskytování nástrojů pro čtení prostorových datových souborů modul prostorových vstupně-výstupních operací zpřístupňuje základní knihovny pro rychlé a efektivní čtení a zápis xml a oddělených dat.
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 pomůžou čtenářům a zapisovačům prostorových dat v modulu Prostorové vstupně-výstupní operace. Můžete je použít k přidání další podpory čtení a zápisu pro soubory 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 čtení dat:
- Funkce
read
přečte úplnou sadu dat a vrátí dvojrozměrné pole řetězců, které představují 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í pole řetězců představující všechny buňky v daném řádku datové sady. Uživatel může řádek zpracovat a před zpracováním dalšího řádku zlikvidovat nepotřebnou paměť z daného řádku. Funkce je tedy paměť efektivnější.
Ve výchozím nastavení používá čtenář znak čárky jako oddělovač. Oddělovač však lze změnit na libovolný jeden znak nebo nastavit na 'auto'
hodnotu . Při nastavení na 'auto'
, čtenář analyzuje první řádek textu v řetězci. Pak vybere nejběžnější znak z následující tabulky, který se použije jako oddělovač.
Oddělovač | Znak |
---|---|
Čárka | , |
Karta | \t |
Potrubí | | |
Tento čtenář také podporuje textové kvalifikátory, které se používají ke zpracování buněk obsahujících znak oddělovače. Znak uvozovky ('"'
) je výchozím kvalifikátorem textu, ale dá se 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 pokynů k 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ěrnou matici objektů představujících 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 metodu
clear
zavolat, aby byl zapisovač opakovaně použitelný a snížil se jeho přidělení prostředků, nebo zavolejte metodudelete
, která odstraní instanci 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 však vyžaduje, atlas.io.core.SimpleXmlReader
aby soubory XML byly správně naformátované. Soubory XML, které nejsou dobře naformátované, například chybějící uzavírací značky, můžou způsobit chybu.
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 způsobem efektivním z hlediska paměti.
Následující kód ukazuje, jak použít SimpleXmlWriter
třídu k vygenerování dobře formátovaného řetězce 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 takto.
<?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žitých v tomto článku:
Další ukázky kódu, které můžete přidat do map, najdete v následujících článcích:
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro