PHP XML DOM

Ang nakalipas na DOM parser ang nagiging posibleng maproseso ang dokumentong XML sa PHP.

Ano ang DOM?

Ang W3C DOM ay nagbibigay ng mga standard na set ng mga bagay para sa dokumentong HTML at XML, at mga standard na interface upang mapakita at ioperahan ang mga dokumento na ito.

Ang W3C DOM ay binibentahan sa iba't ibang bahagi (Core, XML at HTML) at iba't ibang antas (DOM Level 1/2/3):

  • Core DOM – Tumutukoy sa mga standard na set ng mga bagay para sa anumang estrakturang dokumento
  • XML DOM – Tumutukoy sa mga standard na set ng mga bagay para sa dokumentong XML
  • HTML DOM – Tumutukoy sa mga standard na set ng mga bagay para sa dokumentong HTML

如果您希望学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程

XML Parsing

Kung gusto mong basahin at i-update – lumikha at iproseso – isang dokumentong XML, kailangan mo ang parser ng XML.

May dalawang pangunahing uri ng parser ng XML:

  • Parser na nakabase sa puno:Ang uri ng parser na ito ay nag-convert ng dokumentong XML sa estraktura ng puno. Ito ay pinag-aaral ang buong dokumento at nagbibigay ng API upang ma-access ang mga elemento sa puno, tulad ng Document Object Model (DOM).
  • Parser na nakabase sa pangyayari:Tinitingnan ang dokumentong XML bilang isang serye ng pangyayari. Kapag nangyayari ang isang partikular na pangyayari, ang parser ay tatawag ng function upang iproseso ito.

Ang parser ng DOM ay isang parser na nakabase sa puno.

Makikita mo sa ibaba ang isang bahagi ng dokumentong XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>John</from>

Ang XML DOM ay tingnan ang XML bilang isang estraktura ng puno:

  • Level 1: Dokumentong XML
  • Level 2: Root elemento: <from>
  • Level 3: Tekstong elemento: "John"

I-install

Ang DOM XML ay bahagi ng pangunahing bahagi ng PHP. Walang kailangan na i-install para gamitin ang mga function na ito.

XML File

Ginagamit sa aming halimbawa ang sumusunod na XML file:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Paalaala</heading>
<body>Wala kang alalahan ang pagpupulong!</body>
</note>

Mag-lagay at i-output XML

Kailangan namin na inilalagay ang parser ng XML, mag-lagay ng XML, at i-output ito:

例子

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>

以上代码的输出:

George John Paalaala Wala kang alalahan ang pagpupulong!

Kung iyong tingnan ang pinagmulang kodigo sa window ng iyong browser, makikita mo ang sumusunod na HTML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Paalaala</heading>
<body>Wala kang alalahan ang pagpupulong!</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 教程