تحويل XML إلى JSON — السمات والمصفوفات وUnicode
تحويل سمات XML إلى مفاتيح @ والعناصر المتكررة إلى مصفوفات
تعمل في متصفحك · لا يُرفع أي شيء
تُكتب السمات بالشكل @name، والنص المختلط في #text. العناصر الشقيقة ذات الاسم نفسه تصبح مصفوفات. تبقى القيم نصوصًا. لا يُحفظ الترتيب الدقيق للمحتوى المختلط. ملفات DTD غير مدعومة.
طريقة الاستخدام
- الصق مستند XML له عنصر جذر واحد.
- افحص مفاتيح السمات ومصفوفات العناصر المتكررة.
- انسخ JSON الناتج إلى تطبيقك أو أداة التحليل.
قواعد التحويل
يُحتفظ بوسم الجذر مفتاحًا خارجيًا في JSON. وتستخدم السمات البادئة @، مثل @id. والعناصر الفرعية التي يتكرر اسمها تحت الأصل نفسه تصبح مصفوفات. والعنصر الذي لا سمات له ولا عناصر فرعية يصبح نصًا، والعنصر الفارغ يصبح نصًا فارغًا. وتُقرأ CDATA ومراجع أحرف XML القياسية كنص.
عندما يحتوي العنصر على عناصر فرعية، يُجمع نصه المباشر في #text، وتُحذف المسافات البيضاء المستخدمة للتنسيق حول العناصر الفرعية. ولا يحفظ ذلك الترتيب النسبي بين النص والعناصر المتداخلة في المحتوى المختلط. وتُحذف التعليقات وتعليمات المعالجة. وتحتفظ بادئات مساحات الأسماء وسمات xmlns بأسمائها الأصلية، دون إعادة هيكلة تراعي مساحات الأسماء.
أمثلة
<r><item>عربي</item><item>中文😀</item></r> ينتج مصفوفة item تحت r. و<price currency="KRW">001</price> ينتج @currency بالقيمة KRW و#text بالنص 001.
التحقق والحدود
الوسوم غير المغلقة والجذور المتعددة والكيانات المجهولة تؤدي إلى خطأ. وتعريفات DTD والكيانات غير مدعومة. الحد الأقصى للإدخال مليون حرف و64 مستوى من التداخل. هذا التحويل مفيد لفحص البيانات، لكنه ليس تسلسلًا لـ XML بلا فقد. وتبقى النتائج نصًا خاملًا، ويجري التحويل كله محليًا في متصفحك.
الأسئلة الشائعة
هل تتحول القيم التي تشبه الأعداد إلى أعداد؟
لا. يبقى نص العناصر وقيم السمات نصوصًا، فتُحفظ الأصفار البادئة في قيم مثل 001.
هل يُحفظ ترتيب المحتوى المختلط؟
لا. يُجمع النص المباشر في #text، ولا تُحفظ المواضع النسبية بين ذلك النص والعناصر الفرعية.
هل تستطيع الأداة تحميل DTD أو كيانات خارجية؟
لا. تُرفض تعريفات DOCTYPE وENTITY، ولا تجلب الأداة مستندات خارجية ولا توسّع الكيانات المعرّفة.
هل يُرفع XML الذي أدخله؟
لا. يجري التحويل كله محليًا في متصفحك.