(No version information available, might be only in CVS)
DOMXPath->query() — Evaluates the given XPath expression
Executes the given XPath expression .
The XPath expression to execute.
The optional contextnode can be specified for doing relative XPath queries. By default, the queries are relative to the root element.
Returns a DOMNodeList containing all nodes matching the given XPath expression . Any expression which do not return nodes will return an empty DOMNodeList.
Example#1 Getting all the english books
<?php
$doc = new DOMDocument ;
// We don't want to bother with white spaces
$doc -> preserveWhiteSpace = false ;
$doc -> Load ( 'book.xml' );
$xpath = new DOMXPath ( $doc );
// We starts from the root element
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]' ;
$entries = $xpath -> query ( $query );
foreach ( $entries as $entry ) {
echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
" by {$entry->previousSibling->nodeValue}\n" ;
}
?> 上例将输出:
Found The Grapes of Wrath, by John Steinbeck Found The Pearl, by John Steinbeck
We can also use the contextnode parameter to shorten our expression:
<?php
$doc = new DOMDocument ;
$doc -> preserveWhiteSpace = false ;
$doc -> load ( 'book.xml' );
$xpath = new DOMXPath ( $doc );
$tbody = $doc -> getElementsByTagName ( 'tbody' )-> item ( 0 );
// our query is relative to the tbody node
$query = 'row/entry[. = "en"]' ;
$entries = $xpath -> query ( $query , $tbody );
foreach ( $entries as $entry ) {
echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
" by {$entry->previousSibling->nodeValue}\n" ;
}
?> © 2005-2008 BlaBla.cn 版权所有