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



PHP : Function Reference : DOM XML Functions : DomNode->dump_node

DomNode->dump_node

Dumps a single node ()
string DomNode->dump_node ( )


Code Examples / Notes » domnode_dump_node

12-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 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