|
Последние активные темы форума |
|
DOMXPath->query()
DOMXPath->query() --
Evaluates the given XPath expression
Описаниеclass DOMXPath { DOMNodeList query ( string expression [, DOMNode contextnode] ) } Executes the given XPath expression.
Список параметров- expression
The XPath expression to execute.
- contextnode
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.
Примеры
Пример 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
"
;
}
?>
|
|
|