DOMDocument - 提取标记的textcontent,但首先删除某些子元素

时间:2012-10-29 18:03:21

标签: php domdocument

示例来源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,删除链接和其他无关标签(如果我必须指定它们是什么的话,不是问题),像'|'这样的东西等等,保留“Byline”和“Introductory text”。这是一个解析第三方网站的脚本,因此我无法添加CSS类等。

我首先尝试使用(现在不是非常广泛使用)PHP Simple HTML DOM Parser,最近一直尝试DOMDocument

但是我无处可去 - 例如现在我甚至无法遍历<p>下面的树:

$doc = new DOMDocument();
$doc->loadHTML($somehtml);

$p = $doc->getElementsbyTagName('p');

foreach($p->childNodes as $item) {
  ...    
}

上面给出了foreach行的'Undefined property:DOMNodeList :: $ childNodes'错误。

另外:我发现令人沮丧的是,我显然无法使用print_rvar_dump等来显示DOM,而且当我使用xpath->query(我使用{{1}}循环链接时这里似乎不合适,因为我不是真的想搜索/提取特定的东西,而是采取HTML,摆脱我不想要的节点然后保存它)使用print_r向我显示链接文本而不是内容HREF = “”

有人可以推荐一个可理解的DOMDocument指南吗?在实际例子中,PHP手册似乎很短。

0 个答案:

没有答案