示例源 HTML:
<p>
<strong>Byline:</strong> Introductory text.
<a href="1.html" target="">Link 1</a> |
<span class="foo"></span>
<a href="2.html">Link 2</a>
<a href="3.html">Link 3</a>
</p>
我正在尝试做的事情:
我想加载 HTML,去掉链接和其他无关标签(如果我必须指定它们是什么,这不是问题),比如“|” 依此类推,保留“署名”和“介绍性文字”。这是一个解析第 3 方站点的脚本,所以我无法添加 CSS 类等。
我第一次尝试使用(现在不是很广泛使用)PHP Simple HTML DOM Parser,最近一直在尝试DOMDocument。
但是我绝对无处可去-例如,现在我什至无法遍历下面的树<p>
:
$doc = new DOMDocument();
$doc->loadHTML($somehtml);
$p = $doc->getElementsbyTagName('p');
foreach($p->childNodes as $item) {
...
}
以上为我提供了该行的“未定义属性:DOMNodeList::$childNodes”错误foreach
。
另外:我很沮丧,因为我显然无法使用 等来可视化 DOM print_r
,var_dump
而且当我使用循环浏览链接时xpath->query
(这在这里似乎不合适,因为我真的不想搜索/提取特定的东西,而是使用 HTML,删除我不想要的节点,然后保存它)使用 print_r 向我显示了链接文本,但没有显示 href="" 的内容。
任何人都可以推荐一个可以理解的 DOMDocument 指南吗?PHP 手册在实际示例方面似乎很短。