问题描述
我有一个如下的xml
<div class="_4079e399">The age is 24 years</div>
从这里仅使用xpath表达式,我必须提取数字24。
https://www.freeformatter.com/xpath-tester.html网站中的//*[@class="_4079e399"]/translate(.,translate(.,'0123456789',''),'')
,它正在那里提取正确的值。但是,一旦我将其放在控制台的chrome中,它就不会检测到任何元素。如果有人可以帮助我为此构造一个xpath表达式,以便它可以识别并起作用。
解决方法
根据Freeformatter.com XPath Tester / Evaluator,
它完全支持XPath 2.0 / 3.0规范。
,实际上,作为XPath的最后一步的函数调用需要XPath 2.0。
问题是Chrome仅支持XPath 1.0。
如果可以确定只有一个目标元素,则可以重新排列XPath 2.0表达式以与XPath 1.0兼容:
translate(//*[@class="_4079e399"],translate(//*[@class="_4079e399"],"0123456789",""),"")
如果可能匹配多个元素,则必须使用托管XPath调用的语言分别处理它们。
另请参见