通过下面的示例,我无法运行以下XPath表达式://Test[matches(Name1/text(),".*text.*")]
和ExpressionExpection是触发器。正如表达式//Test[matches(Name/text(),".*text.*")]
正常工作一样!
请解释为什么以及如何支付这个问题?因为我花了很多时间没有结果。
先感谢您。
我的例子:
<?xml version="1.0"?>
<Root>
<Test txt="0001" >
<Name1>text1</Name1>
<Name2>text2</Name2>
<Name3>text3</Name3>
</Test>
<Test txt="0002" >
<Name>text4</Name>
<Name>text5</Name>
<Name>text6</Name>
</Test>
</Root>
&#13;
答案 0 :(得分:1)
据我所知,表达式//Test[matches(Name/text(),".*text.*")]
可能会在输入样本中出现错误,即不允许将多个项目的序列作为matches
的第一个参数。
要避免此问题,只需使用//Test[Name[matches(., '.*text.*')]]
。
表达式//Test[matches(Name1/text(),".*text.*")]
应该适用于您的样本,因为只有一个Name1
子项。