Freigeben über


Zentrale E/A-Vorgänge

Neben der Bereitstellung von Tools zum Lesen von Dateien mit räumlichen Daten stellt das Modul Spatial IO auch die zugrunde liegenden Kernbibliotheken bereit, um XML-Daten und Daten mit Trennzeichen schnell und effizient zu lesen und zu schreiben.

Der Namespace atlas.io.core enthält zwei Klassen auf niedriger Ebene, die CSV- und XML-Daten schnell lesen und schreiben können. Diese Basisklassen unterstützen die Reader und Writer räumlicher Daten im Modul Spatial IO. Sie können sie nutzen, um CSV- oder XML-Dateien mit zusätzlicher Unterstützung für Lese- und Schreibvorgänge zu versehen.

Lesen von Dateien mit Trennzeichen

Die atlas.io.core.CsvReader-Klasse liest Zeichenfolgen, die Datasets mit Trennzeichen enthalten. Diese Klasse stellt zwei Methoden zum Lesen von Daten bereit:

  • Die Funktion read liest das vollständige Dataset und gibt ein zweidimensionales Array von Zeichenfolgen zurück, das alle Zellen im Dataset mit Trennzeichen darstellt.
  • Die Funktion getNextRow liest jede Textzeile in einem Dataset mit Trennzeichen und gibt ein Array von Zeichenfolgen zurück, das alle Zellen in der betreffenden Zeile des Datasets darstellt. Der Benutzer kann die Zeile verarbeiten und nicht benötigten Speicher aus dieser Zeile entfernen, bevor er die nächste Zeile verarbeitet. Dadurch ist die Funktion speichereffizienter.

Standardmäßig verwendet der Reader das Kommazeichen als Trennzeichen. Das Trennzeichen kann jedoch in ein beliebiges Einzelzeichen geändert oder auf 'auto' festgelegt werden. Bei Festlegung auf 'auto' analysiert der Reader die erste Zeile des Texts in der Zeichenfolge. Anschließend wählt er in der nachstehenden Tabelle das am häufigsten verwendete Zeichen aus, um es als Trennzeichen zu verwenden.

Trennzeichen Zeichen
Komma ,
Registerkarte \t
Pipe |

Dieser Reader unterstützt auch Textqualifizierer, die zur Behandlung von Zellen verwendet werden, die das Trennzeichen enthalten. Das Anführungszeichen ('"') ist der Standardtextqualifizierer. Es kann jedoch in ein beliebiges Einzelzeichen geändert werden.

Schreiben von Dateien mit Trennzeichen

atlas.io.core.CsvWriter schreibt ein Array von Objekten als Zeichenfolge mit Trennzeichen. Jedes Einzelzeichen kann als Trennzeichen oder Textqualifizierer verwendet werden. Das Standardtrennzeichen ist das Komma (','), der Standardtextqualifizierer das Anführungszeichen ('"').

Um diese Klasse zu verwenden, führen Sie die folgenden Schritte aus:

  • Erstellen Sie eine Instanz der Klasse, und legen Sie optional ein benutzerdefiniertes Trennzeichen oder einen Textqualifizierer fest.
  • Schreiben Sie mit der Funktion write oder writeRow Daten in die Klasse. Übergeben Sie für die Funktion write ein zweidimensionales Array von Objekten, das mehrere Zeilen und Zellen darstellt. Um die Funktion writeRow zu verwenden, übergeben Sie ein Array von Objekten, das eine Datenzeile mit mehreren Spalten darstellt.
  • Rufen Sie die Funktion toString auf, um die Zeichenfolge mit Trennzeichen abzurufen.
  • Rufen Sie optional die clear-Methode auf, um den Writer wiederverwendbar zu machen und seine Ressourcenzuordnung zu reduzieren. Sie können auch die delete-Methode aufrufen, um die Instanz des Writers zu entsorgen.

Hinweis

Die Anzahl der geschriebenen Spalten ist auf die Anzahl der Zellen in der ersten Zeile der an den Writer übergebenen Daten beschränkt.

Lesen von XML-Dateien

Die Klasse atlas.io.core.SimpleXmlReader ist beim Analysieren von XML-Dateien schneller als die Klasse DOMParser. Die Klasse atlas.io.core.SimpleXmlReader erfordert jedoch, dass XML-Dateien einwandfrei formatiert sind. XML-Dateien, die nicht einwandfrei formatiert sind, weil z. B. schließende Tags fehlen, führen möglicherweise zu einem Fehler.

Der folgende Code veranschaulicht, wie die Klasse SimpleXmlReader verwendet wird, um eine XML-Zeichenfolge in ein JSON-Objekt zu analysieren und sie in ein gewünschtes Format zu serialisieren.

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

Schreiben von XML-Dateien

Die Klasse atlas.io.core.SimpleXmlWriter schreibt einwandfrei formatierten XML-Code auf speichereffiziente Weise.

Der folgende Code zeigt, wie die Klasse SimpleXmlWriter verwendet wird, um eine einwandfrei formatierte XML-Zeichenfolge zu generieren.

//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();

Die aus dem obigen Code generierte XML-Datei sieht wie folgt aus.

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

Nächste Schritte

Erfahren Sie mehr zu den in diesem Artikel verwendeten Klassen und Methoden:

CsvReader

CsvWriter

SimpleXmlReader

SimpleXmlWriter

In den folgenden Artikeln finden Sie weitere Codebeispiele, die Sie Ihren Karten hinzufügen können:

Details zu unterstützten Datenformaten