我正在尝试解析HTML文档,并从标记中获取文本值,但问题是标记不包含任何特殊属性或者有一些id来定位它们。 唯一可以锚定的是 - 另一个静态文本,用作标签。
源页面代码与此
类似 <tr>
<td>
<span>
Some text to link to
</span>
</td>
<td>
<span>
THE text to get
</span>
</td>
</tr>
/*****************Parser Page Script*************************/
$file = "src/src.htm";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);
/********* Page that Processes *********/
//Pattern for regEx
$pattern = "/Some text to link to/";
$elements = $doc->getElementsByTagName('td');
if (!is_null($elements)) {
foreach ($elements as $node){
$text = $node->textContent;
if(preg_match($pattern, $text, $matches)){
echo "<pre>";
print_r($node);
echo "</pre>";
}
}
}
如果结果为[nextSibling] =&gt;,如何获取搜索到的td的nextSibling值(省略对象值)?
答案 0 :(得分:0)
可能是使用Xpath。示例xpath:/ table / tr / td / span
$file = "src/src.htm";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);
$xpath = new DOMXpath($doc);
$elements = $xpath->query('/table/tr/td/span');
if(!empty($elements))
{
foreach($elements as $element)
{
echo $element->nodeValue;
}
}