تحليل XML DOM
- الصفحة السابقة شجرة العناصر DOM
- الصفحة التالية تحميل DOM
تضم معظم المتصفحات مستشهد XML مدمج لقراءة وتعامل XML.
يحول المستشهد XML إلى عنصر يمكن الوصول إليه باستخدام بايثون.
مثال
تقدم CodeW3C.com أمثلة مستقلة عن المتصفحات والمنصات. يمكن تشغيل هذه الأمثلة في جميع المتصفحات الحديثة.
تحليل XML
تضم جميع المتصفحات الحديثة مستشهد XML مدمج لقراءة وتعامل XML.
يقرأ المستشهد XML ويضعه في ذاكرة النظام، ثم يتحول إلى عنصر DOM XML يمكن الوصول إليه باستخدام بايثون.
يختلف مستشهد XML من مايكروسوفت عن مستشفديات المتصفحات الأخرى. يدعم مستشهد مايكروسوفت تحميل ملفات XML ونصوص XML (نص)، بينما يستخدم المتصفحات الأخرى مستشفدات منفصلة. ومع ذلك، تحتوي جميع المستشفدات على وظائف لاستكشاف شجرة XML، والوصول، وإدراج وإزالة العناصر.
في هذا الدليل، سنوضح لك كيفية إنشاء سكربت يمكن تشغيله في IE ومتصفحات أخرى.
إضافة XML باستخدام مستشهد XML من مايكروسوفت
مستشهد XML من مايكروسوفت مضمن في متصفح إنترنت إكسبلورر 5 وأعلى.
النصوص التالية تحميل مستند XML ("books.xml) تحميل المحلل:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
توضيح الكود:
- السطر الأول يخلق مستند XML خالي من مايكروسوفت.
- السطر الثاني يغلق التحميل الآلي، مما يضمن عدم استمرار المحلل في تنفيذ السكربت حتى يتم تحميل المستند بشكل كامل
- السطر الثالث يخبر المحلل بتحميل المستند المسمى "books.xml"
النصوص التالية تحميل النص المسمى "txt" إلى المحلل:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
ملاحظة:loadXML() يستخدم هذا الطريقة لإضافة نص (نص)، بينما load() لإضافة ملف.
محلل XML في Firefox ومتصفحات أخرى
النصوص التالية تحميل مستند XML ("books.xml) تحميل المحلل:
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
توضيح الكود:
- السطر الأول يخلق مستند XML فارغ
- السطر الثاني يغلق التحميل الآلي، مما يضمن عدم استمرار المحلل في تنفيذ السكربت حتى يتم تحميل المستند بشكل كامل
- السطر الثالث يخبر المحلل بتحميل المستند المسمى "books.xml"
النصوص التالية تحميل النص المسمى "txt" إلى المحلل:
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
توضيح الكود:
- السطر الأول يخلق مستند XML فارغ
- السطر الثاني يخبر المحلل بتحميل النص المسمى "txt"
ملاحظة:يستخدم متصفح Internet Explorer loadXML() الطريقة لتحليل نص XML، بينما تستخدم المتصفحات الأخرى DOMParser مثل.
تحليل مستند XML - مثال متعدد المتصفحات
النصوص التالية تحميل وتحليل مستند XML ("books.xml) تحميل محلل XML:
<html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc is loaded, ready for use"); } catch(e) {alert(e.message)} </script> </body> </html>
خطأ: Access Across Domains
لأسباب أمنية، لا تسمح المتصفحات الحديثة بالوصول عبر النطاقات.
这意味着 يجب أن تكون الصفحة وملف XML الذي يحاول تحميله موجودين على نفس الخادم.
ملف XML المفتوح في مثال CodeW3C.com موجود على نطاق CodeW3C.com.
إذا كنت تخطط لاستخدام المثال أعلاه على صفحتك الخاصة، فعليك وضع ملف XML على خادمك الخاص. وإلا، ستسبب xmlDoc.load() خطأ "Access is denied".
تحليل نص XML - مثال متعدد المتصفحات
النصوص التالية تحميل وتحليل XML
<html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc is loaded, ready for use"); </script> </body> </html>
ملاحظة:يستخدم متصفح Internet Explorer طريقة loadXML() لتحليل سلسلة XML، بينما تستخدم المتصفحات الأخرى موضوع DOMParser.
- الصفحة السابقة شجرة العناصر DOM
- الصفحة التالية تحميل DOM