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

时间:2012-10-07 16:54:48

标签: php dom

  

可能重复:
  Grabbing the href attribute of an A element

我目前正在尝试为这个格式的特定元素解析一个网页:

<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>

我试图从中提取的主要部分是整个<span class="big-class" style="some style">标记,因为我需要从元素中提取样式并将其存储到字符串中。为此,我尝试使用以下代码:

$dom = new DOMDocument();
$dom->validateOnParse = true;
$dom->loadHTML($html);

$belement = $dom->getElementById("main-id");
echo $belement->nodeValue;

但是,这只返回字符Â,这是字符代码&#160的用途。

我不确定要搜索什么才能完成此操作,而且我甚至不确定是否使用DOM提取整个HTML行(?)。有什么方法可以使用DOM来返回这个span元素吗?

1 个答案:

答案 0 :(得分:1)

nodeValue将返回您的代码的innerHTML。因此,在这种情况下,它正确地返回Â。您可以查看PHP Xpath : get all href values that contain needle进行类似的讨论。你可以这样做:

$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"]');