函数名:DOMXPath::evaluate() 适用版本:PHP 5, PHP 7
用法: DOMXPath::evaluate() 函数用于在 XML 文档中使用 XPath 表达式进行查询,并返回查询结果。它是基于 XPath 1.0 标准的。
public mixed DOMXPath::evaluate(string $expression, [DOMNode $contextnode = NULL])
参数:
- $expression (必需):XPath 表达式,用于在 XML 文档中查询。
- $contextnode (可选):可选择指定一个上下文节点,在该节点下执行 XPath 表达式查询。如果省略,将使用整个文档作为上下文节点。
返回值:
- 当 XPath 表达式有多个节点匹配时,返回一个被解析的 XPath 表达式的结果 (类型取决于查询结果)。
- 当 XPath 表达式的结果为节点列表时,返回一个 DOMNodeList 对象。
- 当 XPath 表达式的结果为字符串、数字或布尔值时,返回相应类型的标量值。如果结果为空,则返回 NULL。
- 如果 XPath 表达式无效或发生错误,该函数会返回 FALSE。
示例1:查询文档中所有的
$doc = new DOMDocument();
$doc->load('books.xml');
$xpath = new DOMXPath($doc);
$books = $xpath->evaluate('//book');
foreach ($books as $book) {
echo $book->getAttribute('id') . ": " . $book->nodeValue . "\n";
}
示例2:查询文档中所有具有 'category' 属性为 'fiction' 的
$doc = new DOMDocument();
$doc->load('books.xml');
$xpath = new DOMXPath($doc);
$book = $xpath->evaluate('//book[@category="fiction"]')->item(0);
echo $book->nodeValue;
注意事项:
- DOMXPath::evaluate() 函数仅用于执行XPath表达式查询操作。
- XPath 表达式的语法和用法请参阅相关的 XPath 文档和教程。