php 提供了以下函数用于 xml 交互:读取 xml:simplexml_load_file()、domdocument写入 xml:domdocument修改 xml:domxpath
PHP 函数如何与 XML 交互
PHP 提供了广泛的函数来处理 XML 文档,包括读取、写入和修改。本文将探索这些函数及其在实战中的应用。
读取 XML
simpleXML_load_file() 函数读取 XML 文件并将其作为 SimpleXMLElement 对象返回,该对象可以像数组一样访问:
$xmlDoc = simpleXML_load_file('data.xml');
echo $xmlDoc->title; // 输出 XML 中的标题
DOMDocument 类提供另一种解析 XML 的方法,它允许对文档进行更细致的控制:
立即学习“PHP免费学习笔记(深入)”;
$dom = new DOMDocument();
$dom->load('data.xml');
$title = $dom->getElementsByTagName('title')->item(0)->nodeValue;
写入 XML
DOMDocument 也可以用于创建和写入 XML 文档:
$dom = new DOMDocument();
$root = $dom->createElement('item');
$dom->appendChild($root);
$name = $dom->createElement('name', 'John Doe');
$root->appendChild($name);
$dom->save('data.xml');
修改 XML
使用 DOMXPath 类,可以修改现有 XML 文档:
$dom = new DOMDocument();
$dom->load('data.xml');
$xpath = new DOMXPath($dom);
$node = $xpath->query("//item[@id='1']")->item(0);
$node->setAttribute('active', 'true');
$dom->save('data.xml');
实战案例:从 XML 中提取数据
考虑下面这个 XML 文档:
<items>
<item id="1">
<title>Item A</title>
</item>
<item id="2">
<title>Item B</title>
</item>
</items>
使用 SimpleXML,我们可以获取标题:
$items = simpleXML_load_file('items.xml');
foreach ($items->item as $item) {
echo $item->title . PHP_EOL;
}
使用 DOMXPath,我们可以过滤特定项:
$dom = new DOMDocument();
$dom->load('items.xml');
$xpath = new DOMXPath($dom);
$titles = $xpath->query("//item[@id='1']/title");
echo $titles->item(0)->nodeValue; // 输出 "Item A"