我需要对以下问题提供支持,我有一个网站,我想通过xpath获取产品说明。在内容的示例html下面:
<div id="description">
<span>some test</span>
<img src="some src">
<p>
some content etc.
</p>
</div>
现在我使用以下代码:
$result = $xpath->query('//div[@id="description"]');
但是当我用以下行输出结果时:
echo "<pre>".$result->item( 0 )->nodeValue."</pre>"; // there is always only one element
我得到的只是未格式化:“一些测试内容等。”没有空格和其他标签。我知道这是因为xpath将所有其他标签视为节点但是......
我有办法将div的内容作为HTML吗?
答案 0 :(得分:2)
嘿,我做了类似的事情,这篇文章帮助了我:
PHP DOMDocument / XPath: Get HTML-text and surrounded tags
你的代码有点开销,我的意思是,如果你认为(像我一样)它可以用不同的XPath查询或其他东西在一行中解决......
希望有所帮助
答案 1 :(得分:0)
DOM文件是SLOOOOOW
为什么不能用正则表达式做到这一点?
我会这样做:
//将所有内容放在一行上 $ content = preg_replace(“!\ r \ n!”,“”,$ content);
preg_match(“!(。*?)!”,$ content,$ matches);
以上将搜索,然后将所有内容直到第一个
基于上面的HTMl,这将起作用。但如果您在HTML中有其他标签
,则不会