Evaluate the given XPath expression and returns a typed result if possible in PHP
Description
The following code shows how to evaluate the given XPath expression and returns a typed result if possible.
Example
//w w w. j a v a 2 s . c om
<?php
$doc = new DOMDocument;
$doc->load('test.xml');
$xpath = new DOMXPath($doc);
$tbody = $doc->getElementsByTagName('tbody')->item(0);
// our query is relative to the tbody node
$query = 'count(row/entry[. = "en"])';
$entries = $xpath->evaluate($query, $tbody);
echo "There are $entries english books\n";
?>
The following code is for test.xml.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [//w ww .ja va 2 s. c om
<!ELEMENT books (book+)>
<!ELEMENT book (title, author+, xhtml:blurb?)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT blurb (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ATTLIST books xmlns CDATA #IMPLIED>
<!ATTLIST books xmlns:xhtml CDATA #IMPLIED>
<!ATTLIST book id ID #IMPLIED>
<!ATTLIST author email CDATA #IMPLIED>
]>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<books xmlns="http://java2s.com/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<book id="php-basics">
<title>PHP Basics</title>
<author email="t@no.com">Tom</author>
<author email="j@no.com">Jack</author>
<xhtml:blurb>PHP Basics</xhtml:blurb>
</book>
<book id="php-advanced">
<title>PHP Programming</title>
<author email="j@no.php">Jack</author>
</book>
</books>
The code above generates the following result.