我正在尝试使用 xpath 从以下 html 中获取文本“7 天前”。
使用 xpath//div[contains(@class,'fnt20')]
我可以获取 div 中的文本,但我想获取跨度之后的确切文本,即。只有文字“7天前”。
html如下:
<div class="fnt20">
<span class="accessibilityOnly">Duration:</span>
7 days ago
</div>
有人可以建议吗?
更新:起来!我看到这个问题没有被标记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 解决方案
请尝试//div[contains(@class,'fnt20')]/text()[last()]
得到结果' 7 days ago
'