我正在尝试使用PHP Simple HTML DOM Parser来获取外部文件的HTML.该文件包含一个表,目标是找到具有特定数据内容的能力单元格,然后获取下一个兄弟单元格的数据.这些数据需要放在PHP变量中.
表格行如下所示:
fluffirrelevantetc Hello world123.456fluffirrelevantetc我想要完成的是找到包含“Hello world”的表格单元格,然后从下一个td单元格中获取数字.下面的代码找到了表格单元格并回显了它的内容,但我尝试将它用作地标以获取下一个单元格的数据失败了……
$html = file_get_html("http://site.com/stuff.htm");
$e = $html->find('td',0)->innertext = 'Hello world';
echo $e;
所以最终,在上面的例子中,123.456的值需要以某种方式进入PHP变量.
谢谢你的帮助!
解决方法:
它可以使用DOMXPath类完成.您不需要外部库.
这是一个例子:
$html = <<fluffirrelevantetcHello world123.456fluffirrelevantetc
EOF;
// create empty document
$document = new DOMDocument();
// load html
$document->loadHTML($html);
// create xpath selector
$selector = new DOMXPath($document);
// selects the parent node of nodes
// which's content is 'Hello world'
$results = $selector->query('//td/a[text()="Hello world"]/..');
// output the results
foreach($results as $node) {
echo $node->nodeValue . PHP_EOL;
}
标签:php,dom,html-parsing
来源: https://codeday.me/bug/20190517/1122714.html