Sdílet prostřednictvím


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 nebo writeRow funkce. write Pro funkci předejte dvojrozměrnou matici objektů představujících 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 metodu clear zavolat, aby byl zapisovač opakovaně použitelný a snížil se jeho přidělení prostředků, nebo zavolejte metodu delete , 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:

CsvReader

CsvWriter

SimpleXmlReader

SimpleXmlWriter

Další ukázky kódu, které můžete přidat do map, najdete v následujících článcích:

Podrobnosti o podporovaných formátech dat