質問

Background:

I am trying to perform a query (using XQuery 3.0) on an attribute value (attrname) that might be either an xs:string or an xs:int, lets call it $a.

If $a is able to be parsed to an xs:int then I want to compare it against an xs:int variable $v (<, <=, =, etc.). Otherwise, if it is an xs:string I want to perform a different comparison.

XML Example

<root>
  <element attrname="1">this is an xs:int</element>
  <element attrname="A">this is an xs:string</element>
</root>

Pseudo-code

IF $a IS xs:int THEN
  DO SOMETHING
ELSE IF $a IS xs:string THEN
  DO SOMETHING ELSE

My Issue:

I am not able to find a proper way of evaluating if $a is an xs:int before performing any operation.

役に立ちましたか?

解決

You can use if ($a castable as xs:int) then expression1 else expression2.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top