如何访问php中的DOM,该DOM将在<;html></html>;


how to access DOM in php that will echo out everything between <html></html>

可能重复:
将DOMDocument中的特定元素导出到字符串

我知道如何根据id访问不同的元素,但不知道如何获取html开始标记到html结束标记之间的所有内容。有人能帮帮我吗。谢谢

如果您想用PHP解析html页面,可以使用PHP的DOMDocument扩展,例如:

// a new dom object
$dom = new domDocument;
// load the html into the object
$dom->loadHTML($html);
// keep white space
$dom->preserveWhiteSpace = true;
// nicely format output
$dom ->formatOutput   = true;
//get element by tag name
$htmlRootElement = $dom->getElementsByTagName('html');
echo htmlspecialchars($dom->saveHTML(), ENT_QUOTES);

或者,您可以在客户端使用JavaScript:

var htmlRootElement = document.getElementsByTagName("html");
alert(htmlRootElement.innerHTML);

您可以使用DOMDocument类访问<html>标记中的每个元素。

示例

$htmlDoc = new DOMDocument;
$html = <<<HTML
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>My Site</title>
    <meta name="description" content="DOM test">
</head>
<body>
    <h1>Hello</h1>
    <p>This is a DOM test</p>
</body>
</html>
HTML;
$htmlDoc->loadHTML($html);
$htmlElement = $htmlDoc->getElementsByTagName("html");
foreach ($htmlElement->item(0)->childNodes as $element) {
    echo 'Element name: ' . $element->nodeName . PHP_EOL;
    echo 'Element value: '. $element->nodeValue . PHP_EOL;
}