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



PHP : Function Reference : DOM XML Functions : DomDocument->get_element_by_id

DomDocument->get_element_by_id

Searches for an element with a certain id ()
domelement DomDocument->get_element_by_id ( string id )


Related Examples ( Source code ) » domdocument get element by id
















Code Examples / Notes » domdocument get element by id

etienne dot anken

This class is useful for people who haven't the latest release of PHP and would like to search an element with a known ID through a collection of nodes.
Example to use it :
$domDoc = xmldoc("<root><entity id='e1'></entity><entity id='e2'><titi id='e5'></titi></entity></root>");

$root = $domDoc->root();
$children = $root->child_nodes();

$researchObject = new searchElementById("e5", $children);
$resultElement = $researchObject->beginSearching();
The source of the class :
class searchElementById {

 //Class which can find and return an XML node with a specified ID
 var $numberElements=0;
 var $numberAttributes=0;
 var $idToFind;
 var $tabElements;

 //Initialization function which accept 2 parameters :
 //$paramIdToFind : value of the ID to find
 //$paramTabElements : array of nodes which contains the element to find
 function searchElementById($paramIdToFind, $paramTabElements) {
   //Initialization of class variables
   $this->idToFind = $paramIdToFind;
   $this->tabElements = $paramTabElements;
 }

 //Function starting the research
 function beginSearching() {
   //Search and return the element found
   return $this->searchID($this->tabElements);
 }

 //Recursive function searching the desired node
 function searchID($tabElements) {

   //Variable of the number of elements
   $i = 0;
   //Variable of the number of attributes
   $j = 0;

   //Number of nodes in the elements' array
   $nbreNoeuds = count($tabElements);

   //Loop on all elements
   for ($i=0;$i<$nbreNoeuds;$i++) {

     //Incrementation of the class variable couting the total number of elements
     $this->compteurElements++;

     //Extraction of the attributes of the current element
     $tabAttributs = $tabElements[$i]->attributes();
     //Number of attributes in the current element
     $nbreAttributs = count($tabAttributs);
     //Loop on all attributes
     for ($j=0;$j<$nbreAttributs;$j++) {

       //Incrementation of the class variable couting the total number of attributes
       $this->numberAttributes++;
       //Test if the current attribute is the attribute to find
       if ($tabAttributs[$j]->value==$this->idToFind) {
         //If yes, return the current element
         return $tabElements[$i];
       }

     }

     //Search children nodes of the current element
     $children = $tabElements[$i]->child_nodes();
     if (!is_bool($children)) {
       //If the current element has children, call recursively this function
       $result = $this->searchID($children);
       //If the result is not boolean, return the array
       if (!is_bool($result)) {
         return $result;
       }
     }
   }

   return false;

 }

}


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