示例 HTML...
<html>
<head></head>
<body>
<table>
<tr>
<td class="rsheader"><b>Header Content</b></td>
</tr>
<tr>
<td class="rstext">Some text (Most likely will contain lots of HTML</td>
</tr>
</table>
</body>
</html>
我需要将 HTML 页面转换为该 HTML 页面的模板版本。HTML 页面由几个框组成,每个框都有一个标题(在上面的代码中称为“rsheader”)和一些文本(在上面的代码中称为“rstext”)。
我正在尝试编写一个 PHP 脚本来检索可能使用 file_get_contents 的 HTML 页面,然后提取 rsheader 和 rstext div 中的任何内容。基本上我不知道怎么做!我尝试过使用 DOM,但我不太了解它,虽然我确实设法提取了文本,但它忽略了任何 HTML。
我的PHP...
<?php
$html = '<html>
<head></head>
<body>
<table>
<tr>
<td class="rsheader"><b>Header Content</b></td>
</tr>
<tr>
<td class="rstext">Some text (Most likely will contain lots of HTML</td>
</tr>
</table>
</body>
</html>';
$dom = new DomDocument();
$dom->loadHtml($html);
$xpath = new DomXpath($dom);
$div = $xpath->query('//*[@class="rsheader"]')->item(0);
echo $div->textContent;
?>
如果我做一个 print_r($div) 我会看到这个......
DOMElement Object
(
[tagName] => td
[schemaTypeInfo] =>
[nodeName] => td
[nodeValue] => Header Content
[nodeType] => 1
[parentNode] => (object value omitted)
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] =>
[nextSibling] => (object value omitted)
[attributes] => (object value omitted)
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] => td
[baseURI] =>
[textContent] => Header Content
)
如您所见, textContent 节点中没有 HTML 标记,这让我相信我的做法是错误的 :(
真的希望有人可以给我一些帮助...
提前致谢
保罗