PHP XML DOM 解析器
内置的 DOM 解析器使得在 PHP 中处理 XML 文档成为可能。
XML DOM 解析器
DOM 解析器是一个基于树的解析器。
看一下以下 XML 文档部分:
<?xml version="1.0" encoding="UTF-8"?>
<from>贾尼</from>
DOM 将上面的 XML 视为树结构:
- 级别 1:XML 文档
- 第 2 级:根元素:<from>
- 第 3 级:文本元素:“Jani”
安装
DOM 解析器函数是 PHP 核心的一部分。使用这些函数无需安装。
XML 文件
下面的 XML 文件(“note.xml”)将在我们的示例中使用:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>托芙</to>
<from>贾尼</from>
<heading>提醒</heading>
<body>这个周末别忘了我!</body>
</note>
加载和输出 XML
我们要初始化 XML 解析器、加载 xml 并输出它:
<?php
$xmlDoc = 新的 DOMDocument();
$xmlDoc->加载(“note.xml”);
打印 $xmlDoc->saveXML();
?>
上述代码的输出将是:
Tove Jani 提醒 这个周末别忘了我!
如果您在浏览器窗口中选择“查看源代码”,您将看到以下 HTML:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>托芙</to>
<from>贾尼</from>
<heading>提醒</heading>
<body>这个周末别忘了我!</body>
</note>
上面的例子创建了一个 DOMDocument 对象并将“note.xml”中的 XML 加载到其中。
然后 saveXML() 函数将内部 XML 文档放入字符串中,以便我们可以输出它。
循环遍历 XML
我们要初始化 XML 解析器,加载 XML,并循环遍历<note>元素:
<?php
$xmlDoc = 新的 DOMDocument();
$xmlDoc->加载(“note.xml”);
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
打印 $item->nodeName 。“ = ”。$item->nodeValue 。“<br> “;
}
?>
上述代码的输出将是:
#文本 =
至=托芙
#文本 =
来自 = Jani
#文本 =
标题 = 提醒
#文本 =
body = 这个周末别忘了我!
#文本 =
在上面的例子中,您可以看到每个元素之间都有空文本节点。
XML 生成时,节点之间通常会包含空格。XML DOM 解析器会将这些空格视为普通元素,如果您没有意识到这些空格,它们有时会引发问题。
如果您想了解有关 XML DOM 的更多信息,请访问我们的 XML 教程.