PHP Xpath帮助,无法解析HTML。

问题描述 投票:0回答:1

我想从下面的TR代码中得到2个值。

1)xyz.com2)这是伟大的,我会给100块钱。

以下是我尝试XpathParse的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 dom xpath
1个回答
0
投票

一个解决方案可能是:

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

EDIT : 假设你有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";
© www.soinside.com 2019 - 2024. All rights reserved.