2017-12-21 14 views
0

Net Framwork上のアプリケーションでsaxon9-he(バージョン9.8.0.6)をXPathに使用すると、「net.sf.saxon.trans.XPathException:Can xs:untypedAtomicとxs:decimalを比較しないでください。サクソン。 XPathSelector。 XPathException:xs:untypedAtomicとxs:decimalを比較できない

XPathSelectorが "Evaluate"メソッドを使用して式を評価するときに発生します。 式自体は、matches($ var1/text()、 '^ [0-9] {1,2}。[0-9] {2} $')または($ var1 eq 100.0)のようになります。

変数 "var1"はXPathSelectorにSetVariableメソッドでXdmNodeとして設定されます。

私はあなたにこの状況から可能な方法を提案するようお願いします。

+0

他の人が問題を再現できるように、XMLとC#またはVB.NETコードの最小限の完全なスニペットを表示することを検討してください。私は、犯人が '$ var1 eq 100.0'だと思っています。その代わりに' $ var1 = 100.0'を試してみてください。 –

答えて

0

"="演算子は、xs:untypedAtomicオペランドを他のオペランドの型に変換します。 "eq"演算子はそうではありません。

この理由は、それがインデックス化のために賢明に働くので、「EQ」推移を作ることで、グループ化など

だから、手動変換を行う必要があり、次のいずれか

xs:decimal($var1) eq 100.0 

または使用「=」演算子:

$var1 = 100.0 

ところで、あなたはどちらかここかサクソンフォーラムでサクソン質問を歓迎しているが、両方に同じ質問をしないでください:それはすべての人の時間を無駄にします。

関連する問題