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



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

DomDocument->dump_mem

Dumps the internal XML tree back into a string ()
string DomDocument->dump_mem ( [bool format [, string encoding]] )

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not.

Example 552. Creating a simple HTML document header

<?php
$doc
= domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo
"<PRE>";
echo
htmlentities($doc->dump_mem(true));
echo
"</PRE>";
?>


Note:

The first parameter was added in PHP 4.3.0.

See also domdocument_dump_file(), and domdocument_html_dump_mem().

Related Examples ( Source code ) » domdocument dump mem






Code Examples / Notes » domdocument dump mem

bruno dot rodrigues

string dump_mem(int format, string encoding);
format=0,1 = <tag>text</tag>
format=2 =
<tag>
 text
</tag>
encoding set's the encoding attribute in line
<?xml version="1.0" encoding="iso-8859-1"?>


jonathan

It seems that if you use $xslt->dump_mem(TRUE) IE: breaks and formats all the HTML Badly. Perhaps its a problem with CR's...

ross

Given the missing description of the encoding parameter, I had hoped it would automatically encode the document if I set the encoding type; this is not the case.
At least in PHP v4.3.3, it seems that setting the encoding type does NOTHING other than set the name displayed in the string:
<?xml version="1.0" encoding="UTF-8"?>
Thus if you want your values to be encoded, you need to manually encode them when you create your DOM object.  E.g. assume you have a simple setup like this:
<?php
 $text = '¡Spanish exclamation!' ;
 $xml = domxml_new_doc( '1.0' );
 $node = $xml->create_element( 'example' );
 $cdata = $xml->create_cdata_section( $text );
 $node->append_child( $cdata );
 $xml->append_child( $node );
 echo $xml->dump_mem( true, 'UTF-8' ) ;
 ?>
This will output the following:
<?xml version="1.0" encoding="UTF-8"?>
<example>
<![CDATA[¡Spanish exclamation!]]>
</example>
However, that is not what was intended, as the exclamation is not UTF-8-encoded.  To make $text be encoded correctly, you have to explicitly do so, as in:
<?php
 $cdata = $xml->create_cdata_section( utf8_encode( $text ) );
 ?>
This results in the output being correctly UTF-8-encoded, as follows:
<![CDATA[¡Spanish exclamation!]]>
Apparently MSIE's MSXML2.DOMDocument ActiveX control requires UTF-8 encoding for special characters, and it will invalidate the entire document if those chars are not appropriately encoded, so beware.


amaslov

<pre>
for xml file that goes like this:
<item>
<name>foo</name>
<desc>bar</desc>
</item>
Format ID's influence output in this manner:
case 0 :{
<item><name>foo</name><desc>bar</desc></item>
}
case 1 :{
<item>
<name>foo</name>
<desc>bar</desc>
</item>
}
case 2:{
<item>
<name>
foo
</name>
<desc>
bar
</desc>
</item>
If you use PHP SAX(Expat) XML engine, you should always stick to format "0". It reads any empty spaces as XML data.
</pre>


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