例如,在此页面:
我们使用这个xpath:
concat(//*[@id='ajaxPrice']/text(), //*[@id='ciItemPrice']/text())
我已经尝试过使用xpath的所有libs:
https://github.com/tid-kijyun/Kanna
https://github.com/topfunky/hpple
https://github.com/honghaoz/Ji
始终获得空结果。如果我将作为xpath查询的结果返回字符串,它们都无法正常工作。我有什么想法可以返回字符串而不是XMLElement
?
答案 0 :(得分:2)
我已经在名为Fuzi(https://github.com/cezheng/Fuzi)的Swift库上尝试了您的XPath查询,它返回了$ 7.98'。 (空格不被修剪,因此您可能需要自己添加)
与您列出的3个库类似,Fuzi也是libxml2的包装。
这是我的代码
import Fuzi
let document = try? HTMLDocument(string: htmlString)
if let result = document?.eval(xpath: "concat(//*[@id='ajaxPrice']/text(), //*[@id='ciItemPrice']/text())") {
print(result.stringValue)
}
答案 1 :(得分:0)
在XPath 2中,我认为最好使用string-join
,如下例所示:
string-join(//*[@id='ajaxPrice']/text(), //*[@id='ciItemPrice']/text())
我希望这对你有所帮助。