public static function get_content_from_dom($dom) { // Only want children of the body tag, since we have a subset of HTML. $out = ''; $body = $dom->getElementsByTagName('body')->item(0); // AMP elements always need closing tags. // To force them, we can't use saveHTML (node support is 5.3+) and LIBXML_NOEMPTYTAG results in issues with self-closing tags like `br` and `hr`. // So, we're manually forcing closing tags. self::recursive_force_closing_tags($dom, $body); foreach ($body->childNodes as $node) { $out .= $dom->saveXML($node); } return $out; }
/** * @dataProvider get_data */ public function test_converter($source, $expected) { $dom = AMP_DOM_Utils::get_dom_from_content($source); $sanitizer = new AMP_Video_Sanitizer($dom); $sanitizer->sanitize(); $content = AMP_DOM_Utils::get_content_from_dom($dom); $this->assertEquals($expected, $content); }