PHP Xpath 帮助,无法解析 HTML



我正在尝试从下面的 TR 代码中获取这里的 2 个值

1( xyz.com 2(这太好了,我会给100美元

下面是我正在尝试Xpath/Parse的HTML代码,但是无法获得所需的结果。

<tr class="something-is-here">
<td>xyz.com</td>
<td class="text-right">
<span>this is great i will give 100 bucks
</span>
</td>
</tr>

尝试了下面的方法,但是它似乎不起作用。

$html = new simple_html_dom();
$html->load($content);
foreach($html->find('tr') as $myLink) {
$href = $myLink->span;
if (!is_null($myLink)) {
foreach ($myLink as $element) {
$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo $node->nodeValue. "n";
}
}
}

任何帮助真的非常感谢。 谢谢。

一种解决方案可能是:

<?php
$xml = <<<'XML'
<tr class="something-is-here">
<td>xyz.com</td>
<td class="text-right">
<span>this is great i will give 100 bucks</span>
</td>
</tr>
XML;
$document = new DOMDocument();
$document->loadXML($xml);
$xpath = new DOMXpath($document);
$elements=$xpath->query('//tr//*[text()[normalize-space()]]');
foreach($elements as $element)
echo $element->nodeValue. "n";
?>

输出:

xyz.com
this is great i will give 100 bucks

编辑:假设你有HTML:

$dom = new DomDocument();
$data='<tr class="something-is-here">
<td>xyz.com</td>
<td class="text-right">
<span>this is great i will give 100 bucks
</span>
</td>
</tr>';
$dom->loadHTML($data);
$xpath = new DOMXpath($dom);
$elements=$xpath->query('//tr//*[text()[normalize-space()]]');
foreach($elements as $element)
echo $element->nodeValue. "n";

最新更新