PHP Doku:: Evaluates the XPath Location Path in the given string - function.xpath-eval-expression.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzXML-ManipulationDOM-XMLDOM-XML-Funktionenxpath_eval_expression

Ein Service von Reinhard Neidl - Webprogrammierung.

DOM-XML-Funktionen

<<domxml_xslt_version

xpath_eval>>

xpath_eval_expression

(PHP 4)

xpath_eval_expression Evaluates the XPath Location Path in the given string

Beschreibung

XPathObject XPathContext::xpath_eval_expression ( string $expression [, domnode $contextnode ] )
XPathObject xpath_eval_expression ( XPathContext $xpath_context , string $expression [, domnode $contextnode ] )

Beispiel #1 xpath_eval_expression() Example

<?php

include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
    echo 
"Error while parsing the document\n";
    exit;
}

$xpath xpath_new_context($dom);
var_dump(xpath_eval_expression($xpath'/chapter/@language'));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(XPathObject)(2) {
   ["type"]=>
   int(1)
   ["nodeset"]=>
   array(1) {
     [0]=>
     object(domattribute)(5) {
       ["type"]=>
       int(2)
       ["name"]=>
       string(8) "language"
       ["value"]=>
       string(2) "en"
       [0]=>
       int(7)
       [1]=>
       int(138004256)
     }
  }
}

See also xpath_eval().


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
trotters213 at msn dot com
15.01.2009 11:42
For those who use PHP5 and the domxml module of PECL : this function doesn't return the same thing if the result is "empty".

Look at this example using the code and the XML file  :
<?php
/* ...
... code to get a xpath ...
... */
$ret = xpath_eval_expression($xPath, "/some/thing | /other/thing");
var_dump($ret);
?>

If the xpath doesn't match anything :
- In PHP4, this code displays
bool(false)

- In PHP5 (with PECL domxml module) , this code displays
object(XPathObject)#25 (2) {
  ["type"]=>
  int(1)
  ["nodeset"]=>
  array(0) {
  }

which is NOT false !!!



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)