当我在Net Framwork上的应用程序中使用saxon9-he(版本9.8.0.6)进行XPath时,会出现错误" net.sf.saxon.trans.XPathException:无法将xs:untypedAtomic与xs进行比较:decimal"。
当XPathSelector使用" Evaluate"评估表达式时会发生这种情况。方法。 表达式本身如下所示:匹配($ var1 / text(),' ^ [0-9] {1,2}。[0-9] {2} $')或($ var1 eq 100.0)。
变量" var1"由SetVariable方法在XPathSelector中设置为XdmNode。
我请你建议摆脱这种情况。
答案 0 :(得分:0)
“=”运算符将xs:untypedAtomic操作数转换为另一个操作数的类型。 “eq”运算符没有。
这样做的原因是使“eq”具有传递性,因此它可以合理地用于索引,分组等。
所以你应该进行手动转换:
xs:decimal($var1) eq 100.0
或使用“=”运算符:
$var1 = 100.0
顺便说一下,欢迎您在这里或在Saxon论坛上询问Saxon的问题,但请不要在两者上提出同样的问题:这会浪费每个人的时间。