在PHP中使用DOM从文档中检索HTML行

在PHP中使用DOM从文档中检索HTML行,php,dom,Php,Dom,可能重复: 我目前正在尝试分析特定元素的网页,该元素将采用以下格式: <div id="main-id"> <div id="sub-id-1" onclick="some onclick"> <span class="big-class" style="some style"> </span> <div id="sub-id-2">&#160;</div> </div>

可能重复:

我目前正在尝试分析特定元素的网页,该元素将采用以下格式:

<div id="main-id">
    <div id="sub-id-1" onclick="some onclick"> 
    <span class="big-class" style="some style">
    </span>
    <div id="sub-id-2">&#160;</div>
</div>
但是,这只是返回字符
,这就是字符代码
和#160
的用途


我真的不确定要搜索什么才能完成这项任务,我甚至不确定是否使用DOM拉取整个HTML行(?)。是否有任何方法可以使用DOM返回此span元素?

nodeValue
将返回标记的innerHTML。因此,在本例中,它正确地返回
。您可以查看类似的讨论。您可以这样做:

$html = <<< HTML
<div id="main-id">
    <div id="sub-id-1" onclick="some onclick"> 
    <span class="big-class" style="some style">
    </span>
    <div id="sub-id-2">&#160;</div>
</div>
HTML;

$xml  = simplexml_load_string($html);
$span_elem = $xml->xpath('//span[@class="big-class"]');

$html=我不知道如何合并它,因为我已经有了
$dom->loadHTML($html)
,你能给我举个例子吗?虽然你正确地解释了原因,但解决方案是错误的。@Gordon是的,解决方案是错误的。我正在更新我的答案…:谢谢你rizwaniqbal不过我还是有一些问题要解决。当我试图输出我用
$xml->xpath
获取的字符串时,我只得到表示
Array
的文本,并使用
print\r($span\elem),给我
数组()
。我是否遗漏了一些关于将其存储到字符串中的明显信息?谢谢。换句话说,使用这个XPath查询:
//span[@class=“big class”]
还要查看并获取整个节点的序列化,例如,它是outerHTML,请参见使用上面的代码,您应该获取您要查找的片段,不是吗?尝试查看源代码,查看页面的src中是否打印了HTML位。
$html = <<< HTML
<div id="main-id">
    <div id="sub-id-1" onclick="some onclick"> 
    <span class="big-class" style="some style">
    </span>
    <div id="sub-id-2">&#160;</div>
</div>
HTML;

$xml  = simplexml_load_string($html);
$span_elem = $xml->xpath('//span[@class="big-class"]');