طريقة تحويل XML إلى JSON
حوّل XML إلى بيانات منظمة دون أن تفقد ما تحمله الوسوم: تبقى السمات ببادئة واضحة، وتصبح الوسوم المتكررة قوائم. في المثال يتحول فهرس فيه كتابان إلى قائمة تضم Rayuela لسنة 1963 وPedro Paramo لسنة 1955. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
دون فقدان العناصر المتداخلة
لماذا يفقد المحوّل السريع بعض البيانات
المحوّل الذي يُكتب في خمس دقائق يتعامل عادة مع النص داخل كل عنصر جيدًا، ثم يتخلص بصمت من كل السمات، لأن معظم برامج قراءة XML تعامل السمات كملاحظات جانبية لا كبيانات. وفي المستندات الحقيقية يكون هذا خطأ مكلفًا، فرسائل SOAP وتغذيات RSS ورسومات SVG وملفات الإعداد الموروثة من أنظمة قديمة تحفظ غالبًا أهم القيم على الوسم نفسه: معرّف أو نوع أو رمز عملة أو رقم إصدار. يحتفظ هذا المحوّل بها جميعًا، ولكل منها بادئة ثابتة حتى لا تتعارض السمة مع عنصر مجاور يحمل الاسم نفسه.
أين ما زال XML حاضرًا وماذا تحصل عليه
الصيغة التي تتبادلها معظم تطبيقات الويب اليوم فازت بهذه المنافسة منذ سنوات، لكن XML لم يختفِ. فما زال يشغّل خدمات SOAP وتغذيات RSS وAtom وداخل مستندات Office، ولذلك يحتاج أحدهم عاجلًا أو آجلًا إلى نقل هذه البيانات إلى نظام أحدث أو جدول بيانات. يحافظ التحويل على الشجرة كما هي: تبقى العناصر المتداخلة متداخلة، وتتحول الوسوم المتكررة إلى قائمة بدل أن يمحو بعضها بعضًا. وفي المثال يعود فهرس فيه كتابان قائمةً تضم Rayuela لسنة 1963 وPedro Paramo لسنة 1955.
الفرق بين عنصر وسمة عند التحويل
تحلّ الأداة هذا بوضع السمات في حقل منفصل داخل الكائن الناتج، عادة بادئة مميزة، بينما يحمل محتوى العنصر مفتاحه الخاص. هذا يحافظ على كل معلومة موجودة في الملف الأصلي دون خلط سمة بمحتوى، وهي نقطة تكسر فيها كثير من المحوّلات البسيطة عند مستندات XML الحقيقية المعقّدة والطويلة.
الاستخدام من الصفحة مباشرة
تجري المعالجة داخل متصفحك: لا يغادر الملف جهازك، ولا حدّ لعدد المرات، ولا حاجة لتسجيل. تناسب ملفات تصل حتى 25 MB، وتعمل من الجوال بالطريقة نفسها التي تعمل بها من الحاسوب.
مناسب للتغذيات التي تتكرر بانتظام
من يستهلك تغذية XML بانتظام — كردود واجهة برمجية قديمة أو ملف تصدير يومي من نظام قديم — يحتاج التحويل ضمن مسار آلي لا لصقًا يدويًا كل مرة. النتيجة نفسها التي تظهر على الصفحة تصل عبر الاستدعاء البرمجي، فلا حاجة لاختبار سلوك مختلف بين الاستخدامين.
الأسئلة الشائعة
هل تُحفظ سمات العنصر أم تُفقد أثناء التحويل؟
تُحفظ في حقل منفصل داخل الكائن الناتج، فلا تفقد أي معلومة موجودة في ملف XML الأصلي.
ماذا يحدث للعناصر المتكررة بالاسم نفسه؟
تُجمَع تلقائيًا في مصفوفة واحدة، بينما يبقى العنصر الفريد كائنًا مفردًا.
هل يُرسل ملفي إلى خادم؟
لا، عند الاستخدام من هذه الصفحة تجري المعالجة داخل متصفحك فقط.
هل يعمل مع ملفات XML التي تحتوي مساحات أسماء (namespaces)؟
نعم، تُحفظ بادئة المساحة ضمن اسم العنصر في الناتج، دون حذفها.
هل يعمل من الجوال؟
نعم، بالطريقة نفسها التي يعمل بها من الحاسوب.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/data/xml-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"xml":"<r><a>1</a></r>"}'const res = await fetch("https://api.kit.forhosting.com/data/xml-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"xml": "<r><a>1</a></r>"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/xml-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"xml": "<r><a>1</a></r>"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/xml-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"xml":"<r><a>1</a></r>"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"xml":"<r><a>1</a></r>"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/xml-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"xml": "<r><a>1</a></r>"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.xml_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
أداة تحوّل مستند XML إلى JSON محافظة على تسلسل العناصر المتداخلة وسماتها، فتحصل على بنية بيانات يسهل على أي لغة برمجة قراءتها مباشرة. تعمل داخل متصفحك دون رفع الملف لأي خادم، وتناسب من يستهلك تغذية RSS أو رد واجهة برمجية قديمة بصيغة XML ويحتاج تمريره إلى نظام حديث يفهم JSON فقط.
الفرق بين عنصر وسمة عند التحويل
يميّز XML بين محتوى العنصر وسماته الموصوفة داخل الوسم نفسه، وهو تمييز لا وجود له في JSON.
العناصر المتكررة تصبح مصفوفة
حين يتكرر وسم بالاسم نفسه داخل عنصر أب واحد — كعناصر منتج متعددة داخل كتالوج — تجمعها الأداة تلقائيًا في مصفوفة واحدة مرتبة بدل الاحتفاظ بواحد فقط أو تجاهل التكرار كليًا. أما العنصر الذي يظهر مرة واحدة فقط فيبقى كائنًا مفردًا لا مصفوفة من عنصر واحد فيها، فتبقى بنية الناتج قريبة مما يتوقعه أي مطوّر يقرأ JSON مباشرة دون تفسير إضافي لكل حقل فيه بمفرده.
الاستخدام من الصفحة مباشرة
ألصق كود XML أو ارفع الملف، شغّل الأداة، وانسخ نتيجة JSON أو نزّلها. تُعرَض بنية JSON الناتجة بإزاحة واضحة تسهّل مراجعة العناصر المتداخلة بالعين قبل نسخها إلى المشروع النهائي مباشرة.
الأتمتة عبر الـAPI لتغذيات متكررة
نفس المحرك متاح عبر الـAPI بسعر ثابت قدره $0.002 للمستند الواحد، دون اشتراك شهري، مناسب لخط بيانات يعالج عشرات الملفات يوميًا.
حالات التكامل
دمج تغذية RSS في تطبيق حديث
يستهلك مطوّر في شركة الخليج الرقمية تغذية RSS بصيغة XML من موقع شريك، ويحوّلها إلى JSON عبر الـAPI ليدمجها مباشرة في تطبيق الجوال الحديث.
قراءة رد واجهة برمجية حكومية قديمة
يتعامل نظام مؤسسة النخيل للمقاولات مع واجهة برمجية حكومية ترد بصيغة XML فقط؛ يحوّل الرد إلى JSON قبل معالجته في النظام الداخلي الحديث.
ترحيل بيانات منتجات من نظام قديم
يصدّر متجر عبدالله المنصوري كتالوج منتجاته من نظام تجارة إلكترونية قديم بصيغة XML، ويحوّله إلى JSON عند الانتقال لمنصة جديدة.
أسئلة تقنية
هل الأداة مجانية؟
نعم، داخل المتصفح بلا حدّ وبلا تسجيل. المدفوع فقط عبر الـAPI بسعر $0.002 للمستند.
ما أقصى حجم ملف مدعوم؟
25 ميغابايت في الطلب الواحد.