Bagikan melalui


Operasi IO inti

Selain menyediakan alat untuk membaca file data spasial, modul IO spasial memaparkan pustaka inti yang mendasarinya untuk membaca dan menulis XML dan data yang dibatasi dengan cepat dan efisien.

Namespace layanan atlas.io.core berisi dua kelas tingkat rendah yang dapat dengan cepat membaca dan menulis data CSV dan XML. Kelas dasar ini memberi daya pada pembaca dan penulis data spasial dalam modul IO Spasial. Jangan ragu untuk menggunakannya untuk menambahkan lebih banyak dukungan membaca dan menulis untuk file CSV atau XML.

Membaca file yang dibatasi

Kelas atlas.io.core.CsvReader membaca string yang berisi himpunan data yang dibatasi. Kelas ini menyediakan dua metode untuk membaca data:

  • Fungsi membaca read himpunan data lengkap dan mengembalikan array string dua dimensi yang mewakili semua sel himpunan data yang dibatasi.
  • Fungsi getNextRow membaca setiap baris teks dalam himpunan data yang dibatasi dan mengembalikan larik string yang mewakili semua sel dalam baris himpunan data tersebut. Pengguna dapat memproses baris dan membuang memori yang tidak diperlukan dari baris tersebut sebelum memproses baris berikutnya. Jadi, fungsi memori lebih hemat.

Secara default, pembaca menggunakan karakter koma sebagai pemisah. Namun, pemisah dapat diubah ke karakter tunggal apa pun atau disetel ke 'auto'. Saat diatur ke 'auto', pembaca menganalisis baris pertama teks dalam string. Kemudian, ia memilih karakter yang paling umum dari tabel berikut untuk digunakan sebagai pemisah.

Pemisah karakter
Koma ,
Tab \t
Pipa |

Pembaca ini juga mendukung kualifikasi teks yang digunakan untuk menangani sel yang berisi karakter pemisah. Karakter kuotasi ('"') adalah kualifikasi teks default, tetapi dapat diubah ke karakter tunggal apa pun.

Menulis file yang dibatasi

atlas.io.core.CsvWriter menulis larik objek sebagai string yang dibatasi. Setiap karakter tunggal dapat digunakan sebagai pemisah atau kualifikasi teks. Pemisah default adalah koma (',') dan kualifikasi teks default adalah karakter kuotasi ('"').

Ikuti langkah-langkah untuk menggunakan kelas ini:

  • Buat instans kelas dan secara opsional tetapkan pemisah atau kualifikasi teks kustom.
  • Tulis data ke kelas menggunakan fungsi write atau fungsi writeRow. Untuk fungsi write, berikan larik objek dua dimensi yang mewakili beberapa baris dan sel. Untuk menggunakan fungsi writeRow, berikan larik objek yang mewakili baris data dengan beberapa kolom.
  • Panggil fungsi toString untuk mengambil string yang dibatasi.
  • Secara opsional, panggil metode clear untuk membuat penulis dapat digunakan kembali dan mengurangi alokasi sumber dayanya, atau panggil metode delete untuk membuang instans penulis.

Catatan

Jumlah kolom yang ditulis akan dibatasi dengan jumlah sel di baris pertama dari data yang diteruskan ke penulis.

Membaca file XML

Kelas atlas.io.core.SimpleXmlReader ini lebih cepat dalam mengurai file XML daripada DOMParser. Namun, kelas atlas.io.core.SimpleXmlReader mengharuskan file XML diformat dengan baik. File XML yang tidak diformat dengan baik, misalnya tag penutup yang hilang, dapat mengakibatkan kesalahan.

Kode berikut menunjukkan cara menggunakan kelas SimpleXmlReader untuk mengurai string XML menjadi objek JSON dan membuat serial ke dalam format yang diinginkan.

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

Menulis file XML

Kelas atlas.io.core.SimpleXmlWriter menulis XML yang diformat dengan baik dengan cara yang efisien memori.

Kode berikut menunjukkan cara menggunakan kelas SimpleXmlWriter untuk menghasilkan string XML yang diformat dengan baik.

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

XML yang dihasilkan dari kode di atas akan terlihat seperti berikut ini.

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

Langkah berikutnya

Pelajari selengkapnya tentang kelas dan metode yang digunakan di artikel ini:

CsvReader

CsvWriter

SimpleXmlReader

SimpleXmlWriter

Lihat artikel berikut untuk mengetahui sampel kode lainnya yang akan ditambahkan ke peta Anda:

Detail format data yang didukung