DOM في PHP
- 上一页 XML Expat Parser
- 下一页 XML SimpleXML
معالج DOM المدمج يجعل معالجة وثائق XML في PHP ممكنة.
ما هو DOM؟
يقدم W3C DOM مجموعة معياري من العناصر للوثائق HTML و XML، بالإضافة إلى واجهات معياري لاستقبال وتعامل مع هذه الوثائق.
يُقسم W3C DOM إلى أجزاء مختلفة (Core، XML و HTML) وأعلى مستويات (DOM Level 1/2/3):
- Core DOM - يعرف مجموعة معياري من العناصر لأي وثيقة مكتوبة بشكل منظم
- XML DOM - يعرف مجموعة معياري من العناصر للوثائق XML
- HTML DOM - يعرف مجموعة معياري من العناصر للوثائق HTML
如果您希望学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程。
تحليل XML
للقراءة والتحديث - إنشاء وتعامل مع وثيقة XML، تحتاج إلى معالج XML.
هناك نوعان رئيسيان من معالجات XML:
- معالج يعتمد على الشجرة:ي看点 وثيقة XML كشجرة. يتحليله كله ويقدم واجهة API لاستقبال العناصر مثل نموذج وثيقة XML (DOM).
- معالج يعتمد على الأحداث:ي看点 وثيقة XML كسلسلة من الأحداث. عند حدوث حدث معين، يقوم المعالج بتوليد دالة لمعالجته.
معالج DOM هو معالج يعتمد على الشجرة.
انظر إلى جزء وثيقة XML التالي:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>جون</from>
ي看点 XML يشبهه كشجرة:
- المستوى 1: وثيقة XML
- المستوى 2: العنصر الأساسي: <from>
- المستوى 3: عناصر النص: "جون"
التثبيت
وظائف معالج DOM XML هي جزء من نواة PHP. يمكنك استخدام هذه الوظائف دون الحاجة إلى تثبيت.
ملف XML
سنستخدم في مثالنا الملف التالي من XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>جورج</to> <from>جون</from> <heading>تذكير</heading> <body>لا تنسى الاجتماع!</body> </note>
تحميل وإخراج XML
نحتاج إلى تحفيز معالج XML، تحميل XML، ثم إخراجه:
例子
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
以上代码的输出:
جورج جون تذكير لا تنسى الاجتماع!
إذا كنت تنظر في رمز المصدر في نافذة المتصفح، سترى ما يلي من HTML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>جورج</to> <from>جون</from> <heading>تذكير</heading> <body>لا تنسى الاجتماع!</body> </note>
上面的例子创建了一个 DOMDocument-Object,并把 "note.xml" 中的 XML 载入这个文档对象中。
saveXML() 函数把内部 XML 文档放入一个字符串,这样我们就可以输出它。
循环 XML
我们要初始化 XML 解析器,加载 XML,并循环 <note> 元素的所有元素:
例子
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br />"; } ?>
以上代码的输出:
#text = to = George #text = from = John #text = heading = Reminder #text = body = Don't forget the meeting! #text =
在上面的例子中,您看到了每个元素之间存在空的文本节点。
当 XML 生成时,它通常会在节点之间包含空白。XML DOM 解析器把它们当作普通的元素,如果您不注意它们,有时会产生问题。
如果您希望学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程。
- 上一页 XML Expat Parser
- 下一页 XML SimpleXML