我想从下面的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
$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";