21xrx.com
2024-03-19 13:13:39 Tuesday
登录
文章检索 我的文章 写文章
PHP XML DOM解析器
2021-07-26 20:41:39 深夜i     --     --
PHP XML DOM解析器


内置DOM解析器可以在PHP中处理XML文档。


XML DOM解析器

DOM解析器是一个基于树的解析器。

查看以下XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>

DOM将上面的XML视为树结构:

  • 1级:XML文档
  • 2级:根元素:<from>
  • 第3级:文本元素:“Jani”

安装

DOM解析器函数是PHP内核的一部分。 使用这些函数无需安装扩展。


XML文件

下面的XML文件(“note.xml”)将在我们的示例中使用:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

 


加载和输出XML

我们要初始化XML解析器,加载XML,并输出它:

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

print $xmlDoc->saveXML();
?>

上面的代码的输出将是:

Tove Jani Reminder Don't forget me this weekend!

如果在“浏览器”窗口中选择“查看源”,则会看到以下HTML:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

上面的示例创建了一个DOMDocument对象,并将XML从“note.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 = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =

在上面的示例中,您可以看到每个元素之间存在空的文本节点。

当XML生成时,它通常包含节点之间的白色空格。 XML. Dom解析器将这些视为普通元素,如果您不了解它们, 他们有时会导致问题。


如果您想了解有关XML DOM的更多信息,请访问我们的 XML教程。

 

 

  
  
下一篇: PHP - AJAX介绍

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章