|
DomNode->dump_node
Dumps a single node
()
Code Examples / Notes » domnode_dump_node12-mar-2003 07:47
The note above is exact : dump_node is not a method of the DomNode class anymore but a method of DomDocument class. Note that "$dom->dump_node($myNodeObject); " also works in PHP 4.2. So I recommand to use it like this. Last thing : you can't specified the encoding in the dump_node methode contrary to the dump_mem method. So characters like 'é' are always converted in UTF-8. The function below does exactly the same work as dump_node but also take in argument the encoding : (it's not elegant but it works) function my_dump_node($node,$encoding){ $domNode = domxml_new_doc("1.0"); $clonedNode = $node->clone_node(true); $domNode->append_child($clonedNode); $result = $domNode->dump_mem(true,$encoding); $pos = strpos($result,"?>"); return substr($result,$pos+2); } so $dom->dump_node($myNodeObject); becomes my_dump_node($myNodeObject,"ISO-8859-1"); sofa77
the function below to dump only the contents of a node looks as follows in php5. necessarry to say, that there is no dump_node() function in php5... it took me some time to find this out. function dump_child_nodes($node) { $output = ''; $owner_document = $node->ownerDocument; foreach ($node->childNodes as $el){ $output .= $owner_document->saveXML($el); } return $output; } gk
The first comment above is wrong, at least, now in PHP 4.3.0 Example: <?php $xml=<<<eot <node attr="test"><test>hi</test> </node> eot; $doc = domxml_open_mem($xml); $root=$doc->document_element(); //This will NOT work: //$nodeDump =$doc->dump_node($doc); //This works: $nodeDump =$doc->dump_node($root); echo htmlentities($nodeDump); ?> kdan
Note: This also dumps the tag that defines the node you are trying to dump. It is useful because it is the only way I could find to get a node's content including the tags in it. Example: From this xml bit of file: <block> Blah blah blah <some_stuff/> </block> doing a dump_node on this block node will return exactly all of the xml typed above, including the <block> tags. Trying to get the value or content of the node, however, will only return "Blah blah blah" as <some_stuff> is considered a child, not part of the /text() xpath. luken~o
I'm running PHP 4.2.3 and there is a second parameter which defines the format of the output, as with dump_mem() - see the notes for dump_mem() for usage of this.
gerret
I migrated some code from PHP 4.2.1 to PHP 4.3.0. Platform was Apache 1.3.9 on Windows. My code kept crashing Apache until I saw the previous note. dump_node() now appears to be a member of DomDocument, and not of DomNode as it used to be. At least, when I changed my code $node->dump_node($node) to $doc->dump_node($node) Apache quit crashing and the dump_node() method worked as intended. zombie
Here is a handy little function for dumping the contents of a element node when you do not want the element itself yet you do not want the output escaped. For example, you have an HTML body tag and you want to dump the children, but you do not want all the children HTML tags escaped, which it seems like the get value/content functions do. There might be a better way of doing this, but this is pretty stable. function dump_child_nodes($node){ $owner_document = $node->owner_document(); $children = $node->child_nodes(); $total_children = count($children); for ($i = 0; $i < $total_children; $i++){ $cur_child_node = $children[$i]; $output .= $owner_document->dump_node($cur_child_node); } return $output; } Blaine Garrett Webmaster of Art Attack http://artattack.to dan
As of right now, php 4.2.0 this function requires that the first parameter be the node, so it would require DomNode->dump_node(DomNode) |
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 |