function filter_dom_serialize

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 1128

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;
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.