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.





















Home »
  PHP Tutorial »
    XML »




DOM
SimpleXML
SimpleXMLElement
XML Parser