DOMXPath::registerPhpFunctions
(PHP 5 >= 5.3.0)
DOMXPath::registerPhpFunctions — Register PHP functions as XPath functions
Açıklama
This method enables the ability to use PHP functions within XPath expressions.
Değiştirgeler
Dönen Değerler
Hiçbir değer dönmez.
Örnekler
The following examples use book.xml which contains the following:
Örnek 1 book.xml
<?xml version="1.0" encoding="UTF-8"?> <books> <book> <title>PHP Basics</title> <author>Jim Smith</author> <author>Jane Smith</author> </book> <book> <title>PHP Secrets</title> <author>Jenny Smythe</author> </book> <book> <title>XML basics</title> <author>Joe Black</author> </book> </books>
Örnek 2 DOMXPath::registerPHPFunctions() with php:functionString
<?php
$doc = new DOMDocument;
$doc->load('book.xml');
$xpath = new DOMXPath($doc);
// Register the php: namespace (required)
$xpath->registerNamespace("php", "http://php.net/xpath");
// Register PHP functions (no restrictions)
$xpath->registerPHPFunctions();
// Call substr function on the book title
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');
echo "Found {$nodes->length} books starting with 'PHP':\n";
foreach ($nodes as $node) {
$title = $node->getElementsByTagName("title")->item(0)->nodeValue;
$author = $node->getElementsByTagName("author")->item(0)->nodeValue;
echo "$title by $author\n";
}
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Found 2 books starting with 'PHP': PHP Basics by Jim Smith PHP Secrets by Jenny Smythe
Örnek 3 DOMXPath::registerPHPFunctions() with php:function
<?php
$doc = new DOMDocument;
$doc->load('book.xml');
$xpath = new DOMXPath($doc);
// Register the php: namespace (required)
$xpath->registerNamespace("php", "http://php.net/xpath");
// Register PHP functions (has_multiple only)
$xpath->registerPHPFunctions("has_multiple");
function has_multiple($nodes) {
// Return true if more than one author
return count($nodes) > 1;
}
// Filter books with multiple authors
$books = $xpath->query('//book[php:function("has_multiple", author)]');
echo "Books with multiple authors:\n";
foreach ($books as $book) {
echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Books with multiple authors: PHP Basics
Ayrıca Bakınız
- DOMXPath::registerNamespace() - Belirtilen isim alanını DOMXPath nesnesi ile ilişkilendirir
- DOMXPath::query() - Belirtilen XPath ifadesini değerlendirir
- DOMXPath::evaluate() - Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir
There are no user contributed notes for this page.
