我正在尝试使用xpath从以下html获取“7天前”的文本
使用xpath //div[contains(@class,'fnt20')]
我能够到达div中的文本,但我想在span之后得到确切的文本,即。只有“7天前”的文字
html如下:
<div class="fnt20">
<span class="accessibilityOnly">Duration:</span>
7 days ago
</div>
有人可以建议吗?
答案 0 :(得分:0)
请尝试//div[contains(@class,'fnt20')]/text()[last()]
获取结果“7 days ago
”
答案 1 :(得分:0)
更新:Ups!我发现此问题未标记为php
。我应该清楚我正在使用PHP
虽然它有点脆弱,但以下代码可以正常工作:
$html = <<<EOF
<div class="fnt20">
<span class="accessibilityOnly">Duration:</span>
7 days ago
</div>
EOF;
$doc = new DOMDocument();
$doc->loadHTML($html);
$selector = new DOMXPath($doc);
echo trim($selector->query('//div[@class="fnt20"]/text()')
->item(1)
->nodeValue);
注意:trim()
的使用情况并不令人满意。但它的确有效。我将研究如何避免这种情况,以获得纯 xpath解决方案