Sdílet prostřednictvím


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 nebo writeRow funkce. write Pro funkci předejte dvojrozměrné pole objektů představující více řádků a buněk. Pokud chcete funkci použít writeRow , 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 metodu delete 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:

CsvReader

CsvWriter

SimpleXmlReader

SimpleXmlWriter

Další ukázky kódu pro přidání do map najdete v následujících článcích:

Podrobnosti o podporovaném formátu dat