You are here

public static function Html::serialize in Service Container 7.2

Same name and namespace in other branches
  1. 7 lib/Drupal/Component/Utility/Html.php \Drupal\Component\Utility\Html::serialize()

Converts the body of a \DOMDocument back to an HTML snippet.

The function serializes the body part of a \DOMDocument back to an (X)HTML snippet. The resulting (X)HTML snippet will be properly formatted to be compatible with HTML user agents.

Parameters

\DOMDocument $document: A \DOMDocument object to serialize, only the tags below the first <body> node will be converted.

Return value

string A valid (X)HTML snippet, as a string.

1 call to Html::serialize()
Html::normalize in lib/Drupal/Component/Utility/Html.php
Normalizes an HTML snippet.

File

lib/Drupal/Component/Utility/Html.php, line 291
Contains \Drupal\Component\Utility\Html.

Class

Html
Provides DOMDocument helpers for parsing and serializing HTML strings.

Namespace

Drupal\Component\Utility

Code

public static function serialize(\DOMDocument $document) {
  $body_node = $document
    ->getElementsByTagName('body')
    ->item(0);
  $html = '';
  if ($body_node !== NULL) {
    foreach ($body_node
      ->getElementsByTagName('script') as $node) {
      static::escapeCdataElement($node);
    }
    foreach ($body_node
      ->getElementsByTagName('style') as $node) {
      static::escapeCdataElement($node, '/*', '*/');
    }
    foreach ($body_node->childNodes as $node) {
      $html .= $document
        ->saveXML($node);
    }
  }
  return $html;
}