Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : DOM XML Functions : xpath_new_context

xpath_new_context

Creates new xpath context (PHP 4 >= 4.0.4)
XPathContext xpath_new_context ( domdocument dom_document )


Code Examples / Notes » xpath_new_context

david

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.


augusto

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>";


webmaster

Should that not be placed as:
DomDocument->xpath_new_context as it seems to be a method used from a DomDocument object.


27-may-2003 06: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");


Change Language


Follow Navioo On Twitter
DomAttribute->name
DomAttribute->set_value
DomAttribute->specified
DomAttribute->value
DomDocument->add_root
DomDocument->create_attribute
DomDocument->create_cdata_section
DomDocument->create_comment
DomDocument->create_element_ns
DomDocument->create_element
DomDocument->create_entity_reference
DomDocument->create_processing_instruction
DomDocument->create_text_node
DomDocument->doctype
DomDocument->document_element
DomDocument->dump_file
DomDocument->dump_mem
DomDocument->get_element_by_id
DomDocument->get_elements_by_tagname
DomDocument->html_dump_mem
DomDocument->xinclude
DomDocumentType->entities()
DomDocumentType->internal_subset()
DomDocumentType->name()
DomDocumentType->notations()
DomDocumentType->public_id()
DomDocumentType->system_id()
DomElement->get_attribute_node()
DomElement->get_attribute()
DomElement->get_elements_by_tagname()
DomElement->has_attribute()
DomElement->remove_attribute()
DomElement->set_attribute_node()
DomElement->set_attribute()
DomElement->tagname()
DomNode->add_namespace
DomNode->append_child
DomNode->append_sibling
DomNode->attributes
DomNode->child_nodes
DomNode->clone_node
DomNode->dump_node
DomNode->first_child
DomNode->get_content
DomNode->has_attributes
DomNode->has_child_nodes
DomNode->insert_before
DomNode->is_blank_node
DomNode->last_child
DomNode->next_sibling
DomNode->node_name
DomNode->node_type
DomNode->node_value
DomNode->owner_document
DomNode->parent_node
DomNode->prefix
DomNode->previous_sibling
DomNode->remove_child
DomNode->replace_child
DomNode->replace_node
DomNode->set_content
DomNode->set_name
DomNode->set_namespace
DomNode->unlink_node
DomProcessingInstruction->data
DomProcessingInstruction->target
DomXsltStylesheet->process()
DomXsltStylesheet->result_dump_file()
DomXsltStylesheet->result_dump_mem()
domxml_new_doc
domxml_open_file
domxml_open_mem
domxml_version
domxml_xmltree
domxml_xslt_stylesheet_doc
domxml_xslt_stylesheet_file
domxml_xslt_stylesheet
domxml_xslt_version
xpath_eval_expression
xpath_eval
xpath_new_context
xpath_register_ns_auto
xpath_register_ns
xptr_eval
xptr_new_context
eXTReMe Tracker