Udostępnij za pośrednictwem


Podstawowe operacje we/wy

Oprócz udostępniania narzędzi do odczytywania plików danych przestrzennych moduł operacji we/wy przestrzennych uwidacznia podstawowe biblioteki umożliwiające szybkie i wydajne odczytywanie i zapisywanie danych XML oraz rozdzielane danymi.

atlas.io.core Przestrzeń nazw zawiera dwie klasy niskiego poziomu, które mogą szybko odczytywać i zapisywać dane CSV i XML. Te klasy bazowe zasilają czytniki danych przestrzennych i zapisy w module Operacji we/wy przestrzenne. Możesz ich używać do dodawania obsługi odczytu i zapisu plików CSV lub XML.

Pliki rozdzielane do odczytu

Klasa atlas.io.core.CsvReader odczytuje ciągi zawierające rozdzielane zestawy danych. Ta klasa udostępnia dwie metody odczytywania danych:

  • Funkcja read odczytuje pełny zestaw danych i zwraca dwuwymiarową tablicę ciągów reprezentujących wszystkie komórki rozdzielanego zestawu danych.
  • Funkcja getNextRow odczytuje każdy wiersz tekstu w rozdzielonym zestawie danych i zwraca tablicę ciągu reprezentującą wszystkie komórki w tym wierszu zestawu danych. Użytkownik może przetworzyć wiersz i usunąć wszelkie niepotrzebne pamięci z tego wiersza przed przetworzeniem następnego wiersza. Dlatego funkcja jest wydajniejsza w pamięci.

Domyślnie czytelnik używa znaku przecinka jako ogranicznika. Ogranicznik można jednak zmienić na dowolny pojedynczy znak lub ustawić wartość 'auto'. Po ustawieniu 'auto'wartości czytelnik analizuje pierwszy wiersz tekstu w ciągu. Następnie wybiera najbardziej typowy znak z poniższej tabeli, który ma być używany jako ogranicznik.

Ogranicznik Znak
Comma ,
Tab \t
Fajka |

Ten czytnik obsługuje również kwalifikatory tekstowe używane do obsługi komórek zawierających znak ogranicznika. Znak cudzysłowu ('"') jest domyślnym kwalifikatorem tekstu, ale można go zmienić na dowolny pojedynczy znak.

Zapisywanie plików rozdzielonych

Obiekt atlas.io.core.CsvWriter zapisuje tablicę obiektów jako rozdzielany ciąg. Dowolny pojedynczy znak może być używany jako ogranicznik lub kwalifikator tekstu. Domyślny ogranicznik to przecinek (','), a domyślny kwalifikator tekstu to znak cudzysłowu ('"').

Wykonaj kroki, aby użyć tej klasy:

  • Utwórz wystąpienie klasy i opcjonalnie ustaw niestandardowy ogranicznik lub kwalifikator tekstu.
  • Zapisywanie danych w klasie przy użyciu write funkcji lub writeRow funkcji. write W przypadku funkcji przekaż dwuwymiarową tablicę obiektów reprezentujących wiele wierszy i komórek. Aby użyć writeRow funkcji, przekaż tablicę obiektów reprezentujących wiersz danych z wieloma kolumnami.
  • Wywołaj funkcję , toString aby pobrać rozdzielany ciąg.
  • Opcjonalnie wywołaj metodę clear , aby składnik zapisywania był wielokrotnego użytku i zmniejszył alokację zasobów, lub wywołaj delete metodę w celu usunięcia wystąpienia składnika zapisywania.

Uwaga

Liczba zapisanych kolumn będzie ograniczona do liczby komórek w pierwszym wierszu danych przekazanych do modułu zapisywania.

Odczytywanie plików XML

Klasa jest szybsza atlas.io.core.SimpleXmlReader w analizowaniu plików XML niż DOMParser. atlas.io.core.SimpleXmlReader Jednak klasa wymaga formatowania plików XML. Pliki XML, które nie są dobrze sformatowane, na przykład brakujące tagi zamykające, mogą powodować błąd.

Poniższy kod pokazuje, jak używać SimpleXmlReader klasy do analizowania ciągu XML do obiektu JSON i serializowania go w żądanym formacie.

//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.
        }
    }
}

Zapisywanie plików XML

Klasa atlas.io.core.SimpleXmlWriter zapisuje dobrze sformatowany kod XML w wydajny sposób pamięci.

Poniższy kod pokazuje, jak używać SimpleXmlWriter klasy do generowania dobrze sformatowanego ciągu 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();

Wygenerowany kod XML z powyższego kodu wygląda następująco.

<?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>

Następne kroki

Dowiedz się więcej o klasach i metodach używanych w tym artykule:

CsvReader

CsvWriter

SimpleXmlReader

SimpleXmlWriter

Więcej przykładów kodu do dodania do map można znaleźć w następujących artykułach:

Szczegóły obsługiwanego formatu danych