عمليات IO الأساسية

بالإضافة إلى توفير أدوات لقراءة ملفات البيانات المكانية، تعرض وحدة IO المكانية المكتبات الأساسية الأساسية لقراءة وكتابة XML وتحديد البيانات بسرعة وكفاءة.

atlas.io.core تحتوي مساحة الاسم على فئتين منخفضتي المستوى يمكنهما قراءة بيانات CSV وXML وكتابتها بسرعة. تعمل هذه الفئات الأساسية على تشغيل قارئات البيانات المكانية والكتاب في وحدة IO المكانية. لا تتردد في استخدامها لإضافة دعم إضافي للقراءة والكتابة لملفات CSV أو XML.

قراءة الملفات المحددة

atlas.io.core.CsvReader يقرأ الفصل السلاسل التي تحتوي على مجموعات بيانات محددة. توفر هذه الفئة طريقتين لقراءة البيانات:

  • ستقوم الوظيفة read بقراءة مجموعة البيانات الكاملة وإرجاع مصفوفة ثنائية الأبعاد من السلاسل تمثل جميع خلايا مجموعة البيانات المحددة.
  • تقرأ الدالة getNextRow كل سطر من النص في مجموعة بيانات محددة وترجع صفيفا من السلسلة يمثل جميع الخلايا الموجودة في هذا السطر من مجموعة البيانات. يمكن للمستخدم معالجة الصف والتخلص من أي ذاكرة غير ضرورية من هذا الصف قبل معالجة الصف التالي. لذلك ، الوظيفة أكثر كفاءة في الذاكرة.

بشكل افتراضي ، سيستخدم القارئ حرف الفاصلة كمحدد. ومع ذلك، يمكن تغيير المحدد إلى أي حرف واحد أو تعيينه إلى 'auto'. عند التعيين على 'auto'، سيقوم القارئ بتحليل السطر الأول من النص في السلسلة. بعد ذلك ، سيحدد الحرف الأكثر شيوعا من الجدول أدناه لاستخدامه كمحدد.

المحدِد حرف
فاصلة ,
علامة تبويب \t
غليون |

يدعم هذا القارئ أيضا مؤهلات النص المستخدمة لمعالجة الخلايا التي تحتوي على حرف المحدد. حرف الاقتباس ('"') هو مؤهل النص الافتراضي، ولكن يمكن تغييره إلى أي حرف واحد.

كتابة ملفات محددة

atlas.io.core.CsvWriter يكتب صفيف من الكائنات كسلسلة محددة. يمكن استخدام أي حرف واحد كمحدد أو مؤهل نصي. المحدد الافتراضي هو الفاصلة () ومؤهل النص الافتراضي هو حرف الاقتباس (',''"') .

لاستخدام هذه الفئة، اتبع الخطوات التالية:

  • قم بإنشاء مثيل للفئة وقم اختياريا بتعيين محدد مخصص أو مؤهل نصي.
  • اكتب البيانات إلى الفئة باستخدام الدالة أو الدالة writewriteRow . بالنسبة للدالة write ، قم بتمرير صفيف ثنائي الأبعاد من الكائنات التي تمثل صفوفا وخلايا متعددة. لاستخدام الدالة writeRow ، مرر صفيفا من الكائنات يمثل صفا من البيانات بأعمدة متعددة.
  • استدعاء الدالة toString لاسترداد السلسلة المحددة.
  • اختياريا، اتصل بالطريقة لجعل الكاتب قابلا لإعادة الاستخدام وتقليل تخصيص موارده، أو اتصل بالطريقة cleardelete للتخلص من مثيل الكاتب.

ملاحظة

سيتم تقييد عدد الأعمدة المكتوبة بعدد الخلايا في الصف الأول من البيانات التي تم تمريرها إلى الكاتب.

قراءة ملفات XML

atlas.io.core.SimpleXmlReader الفئة أسرع في تحليل ملفات XML من DOMParser. ومع ذلك، atlas.io.core.SimpleXmlReader تتطلب الفئة ملفات XML لتكون منسقة بشكل جيد. من المحتمل أن تؤدي ملفات XML غير المنسقة بشكل جيد ، على سبيل المثال علامات الإغلاق المفقودة ، إلى حدوث خطأ.

توضح التعليمة البرمجية التالية كيفية استخدام SimpleXmlReader الفئة لتحليل سلسلة XML إلى كائن JSON وتسلسلها إلى التنسيق المطلوب.

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

كتابة ملفات XML

يكتب atlas.io.core.SimpleXmlWriter الفصل XML جيد التنسيق بطريقة فعالة للذاكرة.

توضح التعليمة البرمجية التالية كيفية استخدام SimpleXmlWriter الفئة لإنشاء سلسلة 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();

سيبدو XML الذي تم إنشاؤه من التعليمة البرمجية أعلاه كما يلي.

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

الخطوات التالية

تعرف على المزيد حول الفئات والأساليب المستخدمة في هذه المقالة:

سي إس في ريدر

CsvWriter

سيمبل إكس إم إل ريدر

سيمبلكسمليرايتر

راجع المقالات التالية للحصول على مزيد من نماذج التعليمات البرمجية لإضافتها إلى خرائطك:

تفاصيل تنسيق البيانات المدعومة