我想从使用xpath的以下html获取“7天前”文本。
使用xpath //div[contains(@class,'fnt20')]
我能够到达div内的文本,但我想要在跨度ie后得到确切的文本。只有文字“7天前”。
的HTML如下:无法使用XPath提取确切的文本
<div class="fnt20">
<span class="accessibilityOnly">Duration:</span>
7 days ago
</div>
谁能建议?
我想从使用xpath的以下html获取“7天前”文本。
使用xpath //div[contains(@class,'fnt20')]
我能够到达div内的文本,但我想要在跨度ie后得到确切的文本。只有文字“7天前”。
的HTML如下:无法使用XPath提取确切的文本
<div class="fnt20">
<span class="accessibilityOnly">Duration:</span>
7 days ago
</div>
谁能建议?
请尽量//div[contains(@class,'fnt20')]/text()[last()]
获得的结果 '7 days ago
'
更新:不间断电源!我看到这个问题没有标记为php
。我应该clearify我使用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的解决方案
得益于它完美的作品:) – Jeets
注意周围有'7天ago' – hek2mgl
空格如果要截断空间的使用正常化空间() –