عمليات الإدخال والإخراج الأساسية

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

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

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

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

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

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

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

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

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

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

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

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

إشعار

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

قراءة ملفات 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>

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

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

CsvReader

CsvReader

SimpleXmlReader

SimpleXmlWriter

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

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