خصائص وطرق XML DOM

الخصائص والأساليب تعريف واجهة برمجة XML DOM.

مثال

يستخدم المثال التالي ملف XML books.xml.

الوظيفة loadXMLDoc()، تقع في JavaScript الخارجي، لتحميل ملف XML.

الوظيفة loadXMLString()، تقع في JavaScript الخارجي، لتحميل سلسلة XML.

يتم تحميل وتحليل ملف XML.
يتم تحميل وتحليل سلسلة XML.

واجهات البرمجة

يحاكي DOM XML كسلسلة من واجهات العقد.

واجهات برمجة DOM يتم تعريفها من خلال مجموعة معايير من الخصائص والأساليب.

خصائصيستخدم دائمًا بطريقة "ما هو شيء ما" (مثل اسم العنصر هو "book").

أساليبيُستخدم عادةً بنمط "فعل شيء ما" (مثل إزالة عقدة "book").

خصائص XML DOM

بعض الخصائص التypical للDOM:

  • x.nodeName - اسم x
  • x.nodeValue - قيمة x
  • x.parentNode - العقدة الأم لـ x
  • x.childNodes - فرع x
  • x.attributes - عقدة الخاصية الخاصة بـ x

ملاحظة:في القائمة أعلاه، x هو عنصر من نوع node.

أساليب XML DOM

  • x.getElementsByTagName(name) - الحصول على جميع العناصر المزودة بعنوان معين
  • x.appendChild(node) - إدراج فرع في x
  • x.removeChild(node) - إزالة فرع من x

ملاحظة:في القائمة أعلاه، x هو عنصر من نوع node.

مثال

كود JavaScript لاستخراج النص من عقدة <title> في books.xml:

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue

بعد تنفيذ هذه الجملة، سيتم حفظ القيمة في txt كـ "Harry Potter".

توضيح:

  • xmlDoc - XML DOM المكون من معالج التحليل
  • getElementsByTagName("title")[0] - أول عقدة <title>
  • childNodes[0] - أول فرع لـ <title> (عقدة نصية)
  • nodeValue - قيمة العقدة (النص نفسه)

في هذا المثال،getElementsByTagName هي دالة، بينما childNodes وnodeValue هي خصائص.

تحليل ملف XML - مثال متعدد المتصفحات

استخدام دالة loadXMLDoc لتحميل قطعة الكود التالية books.xml تحميل معالج XML وإظهار بيانات book الأول:

xmlDoc=loadXMLDoc("books.xml");
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

الناتج:

Harry Potter
J K. Rowling
2005

TIY

في هذا المثال، نستخدم childNodes[0] لكل عقدة نصية، حتى لو كان عنصر واحد يحتوي على عقدة نصية فقط. هذا بسبب أن دالة getElementsByTagName() دائمًا ما تعود بمجموعة.

تحليل نص XML - مثال متعدد المتصفحات

تحميل وتحليل نص XML:

استخدام دالة loadXMLString لتحميل قطعة الكود التالية books.xml تحميل معالج XML وأظهر بيانات第一个 book:

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>";
xmlDoc=loadXMLString(text);
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

الناتج:

Harry Potter
J K. Rowling
2005

TIY