|
DomDocument->get_element_by_id
Searches for an element with a certain id
()
This function is similar to domdocument_get_elements_by_tagname() but searches for an element with a given id. According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID, though the current implementation simply does an xpath search for "//*[@ID = '%s']". This does not comply to the DOM standard which requires to return null if it is not known which attribute is of type id. This behaviour is likely to be fixed, so do not rely on the current behaviour. Related Examples ( Source code ) » domdocument get element by id Examples ( Source code ) » Form value validation Examples ( Source code ) » Form Data Validation With Error Count Examples ( Source code ) » Saving State with a Hidden Field Examples ( Source code ) » Get Text Field value Examples ( Source code ) » Cookie based login form and get last login time Examples ( Source code ) » Login ID Options Examples ( Source code ) » Get uniqid Examples ( Source code ) » md5 and uniqid Examples ( Source code ) » XML file validation Examples ( Source code ) » Delete data from database by ID Examples ( Source code ) » Get MySQL server information Examples ( Source code ) » Get MySQL host information Examples ( Source code ) » Get MySQL client information Examples ( Source code ) » Get data from database query Examples ( Source code ) » Finding the Number of Rows Returned by a SELECT Statement with mysql_num_rows() Code Examples / Notes » domdocument get element by idetienne 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 LanguageDomAttribute->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 |