2017-12-21 1 views
0

Net Framwork의 응용 프로그램에서 XPath 용 saxon9-he (버전 9.8.0.6)를 사용할 때 "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"은 SetVariable 메서드에 의해 XPathSelector에 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 

, 당신은 여기도 또는 색슨 포럼에 색슨 질문을하지만, 모두 같은 질문을하지 마십시오 환영합니다 : 그것은 모든 사람의 시간을 낭비한다.

관련 문제