function filter_dom_serialize in Drupal 7
Converts a DOM object back to an HTML snippet.
The function serializes the body part of a DOMDocument back to an XHTML snippet. The resulting XHTML snippet will be properly formatted to be compatible with HTML user agents.
Parameters
$dom_document: A DOMDocument object to serialize, only the tags below the first <body> node will be converted.
Return value
A valid (X)HTML snippet, as a string.
3 calls to filter_dom_serialize()
- FilterDOMSerializeTestCase::testFilterEmptyDOMSerialization in modules/
filter/ filter.test - Tests empty DOMDocument object.
- _filter_html in modules/
filter/ filter.module - Implements callback_filter_process().
- _filter_htmlcorrector in modules/
filter/ filter.module - Implements callback_filter_process().
File
- modules/
filter/ filter.module, line 1126 - Framework for handling the filtering of content.
Code
function filter_dom_serialize($dom_document) {
$body_node = $dom_document
->getElementsByTagName('body')
->item(0);
$body_content = '';
if ($body_node !== NULL) {
foreach ($body_node
->getElementsByTagName('script') as $node) {
filter_dom_serialize_escape_cdata_element($dom_document, $node);
}
foreach ($body_node
->getElementsByTagName('style') as $node) {
filter_dom_serialize_escape_cdata_element($dom_document, $node, '/*', '*/');
}
foreach ($body_node->childNodes as $child_node) {
$body_content .= $dom_document
->saveXML($child_node);
}
return preg_replace('|<([^> ]*)/>|i', '<$1 />', $body_content);
}
else {
return $body_content;
}
}