Php 获取div';通过xpath访问HTML内容
我需要在以下问题上的支持,我有一个网站,我想通过xpath获得产品描述。下面是内容的html示例:Php 获取div';通过xpath访问HTML内容,php,xpath,Php,Xpath,我需要在以下问题上的支持,我有一个网站,我想通过xpath获得产品描述。下面是内容的html示例: <div id="description"> <span>some test</span> <img src="some src"> <p> some content etc. </p> </div> 但是当我用下面的行输出结果时: echo "<pre>".$result->ite
<div id="description">
<span>some test</span>
<img src="some src">
<p>
some content etc.
</p>
</div>
但是当我用下面的行输出结果时:
echo "<pre>".$result->item( 0 )->nodeValue."</pre>"; // there is always only one element
echo'.$result->item(0)->nodeValue.“;//总是只有一个元素
我得到的只是未格式化的:“一些测试一些内容等”,没有空格和其他标记。我知道这是因为xpath将所有其他标记都视为节点,但是
我想知道有没有办法将div的内容转换成HTML?嘿,我不久前做了类似的事情,这篇文章帮助了我: 这是代码中的一点开销,我的意思是,如果您(像我一样)认为它可以通过一行不同的XPath查询或其他方式解决
希望对您有所帮助DOM文档很慢 为什么不能用正则表达式来实现这一点 我会这样做: //把一切放在同一条线上 $content=preg\u replace(“!\r\n!”,”,$content) preg_match(“!(*?”,$content,$matches) 以上内容将搜索,然后在第一次搜索之前处理所有内容
基于上面的HTMl,这将起作用。但是如果您在HTML中有其他标记,则不能尝试使用var_dump($result->item(0)->ownerDocument->saveXML($result));你可能在寻找:嗯,我想没有比你展示的更简单的出路了。嗯。。。是的,过了一会儿我才想到这一点,你是对的——这是解决这个问题的更好方法——更容易、更快。
echo "<pre>".$result->item( 0 )->nodeValue."</pre>"; // there is always only one element