📅  最后修改于: 2023-12-03 15:03:36.924000             🧑  作者: Mango
在PHP中,DOMXPath的query()函数被用来在XML或HTML文档中搜索元素或属性。
DOMNodeList DOMXPath::query(string $expression, DOMNode $contextnode = null, bool $registerNodeNS = true)
参数说明:
$expression
:必须,表示XPath查询表达式。$contextnode
:可选,表示表达式的起始位置,默认为文档根节点。$registerNodeNS
:可选,如果设置为true(默认值),那么DOMElement上的命名空间前缀将被注册。如果设置为false,那么DOMXPath就只会处理无命名空间的元素。如果查询成功,query()函数将返回一个DOMNodeList对象,其中包含了查询结果的所有节点。如果查询失败,则返回一个空的DOMNodeList对象。
// 加载一个XML文件
$xml = <<<EOX
<?xml version="1.0" encoding="UTF-8"?>
<library>
<book>
<title>Alice in Wonderland</title>
<author>Lewis Carroll</author>
</book>
<book>
<title>The Adventures of Tom Sawyer</title>
<author>Mark Twain</author>
</book>
</library>
EOX;
$doc = new DOMDocument();
$doc->loadXML($xml);
// 创建一个DOMXPath对象
$xpath = new DOMXPath($doc);
// 查询文档中的所有book元素
$books = $xpath->query("/library/book");
// 遍历查询结果并打印
foreach ($books as $book) {
$title = $book->getElementsByTagName("title")->item(0)->nodeValue;
$author = $book->getElementsByTagName("author")->item(0)->nodeValue;
echo "Title: $title\nAuthor: $author\n\n";
}
输出结果如下:
Title: Alice in Wonderland
Author: Lewis Carroll
Title: The Adventures of Tom Sawyer
Author: Mark Twain
上面的示例查询了一个XML文件,找到了文档中的所有book元素,并打印了每本书的标题和作者。
DOMXPath query()函数是PHP中一个非常有用的函数,可以帮助我们快速地在XML或HTML文档中查找元素或属性。学会使用它,将使我们的程序开发变得更加高效。