PHP: xpath_new_context - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

xpath_register_ns_auto xpath_eval

Last updated: Fri, 26 Jan 2007

view this page in

# xpath_new_context

(PHP 4 >= 4.0.4, PECL)

xpath_new_context -- Creates new xpath context

## Описание

XPathContext xpath_new_context ( domdocument dom_document )

See also xpath_eval().

add a note User Contributed Notes
xpath_new_context
David
09-Aug-2006 03:46
`WARNING FOR PHP5 USERS! (if you are having xpath problems)
There seem to be several versions of the DOM library/extension arround, it would appear that the one in this page is for PHP4 only, while this is the one in PHP5:
http://us2.php.net/manual/en/ref.dom.php
See the DOMXPath class for xpath functions.`
webmaster at ebinformatique dot com
07-Feb-2006 10:32
`Should that not be placed as:
DomDocument->xpath_new_context as it seems to be a method used from a DomDocument object.`
augusto at omnitec dot it
22-Jun-2004 10:52
`Split easily XPath result into associative array:
function xpath_parser($xml_file, $xpath_query) {
$xml_file = realpath($xml_file);
if (file_exists($xml_file)) {
$doc = domxml_open_file($xml_file);
$ctx = $doc->xpath_new_context();
if ($xpathObj = @$ctx->xpath_eval($xpath_query)) {
$return = array();
foreach($xpathObj->nodeset as $risultato) {
$tagName = $risultato->tagname();
$content = $risultato->get_content();
if (array_key_exists($tagName, $return)) {
$return[$tagName][] = $content;
}else {
if (count($doc->get_elements_by_tagname($tagName)) > 1) {
$return[$tagName] = array($content);
}else {
$return[$tagName] = $content;
}
}
}
}else { return("<b>Error :</b> Wrong XPath query"); }
}else { return("<b>Errore :</b> File not exist or wrong filepath!"); }
return $return;
}
usage:
$xml_file = "./listaCD.xml";
$query = "/listacd/*";
echo "<pre>";
print_r(xpath_parser($xml_file, $query));
echo "</pre>";`
27-May-2003 10:16
`I found a nice function in XML_sql2xml. With it, you can get, easily, the result of a xpath expression.
function getXpathValues(&$dom, $expr) {
$xpth = $dom->xpath_new_context();
$xnode = xpath_eval($xpth,$expr);
if (isset ($xnode->nodeset[0])) {
$firstnode = $xnode->nodeset[0];
$children = $firstnode->children();
$value = $children[0]->content;
return $value;
}
else return Null;
}
Usage :
$dom = domxml_open_file('pear.rss');
echo $this->getXpathValues($dom, "//channel/title");`
add a note
xpath_register_ns_auto xpath_eval

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 09:32:46 2007 PST