如何在xpath中获取元素类型?

dan*_*tel 5 xpath xquery

我的 xml 是:

<record>
  <field name="f1"/>
  <id name="f2"/>
  <id name="f3"/>
  <field name="f4"/>
  <info/>
</record>
Run Code Online (Sandbox Code Playgroud)

我想像这样在 xquery 中循环遍历它:

for $i in $records/record/field | $records/record/id
return
   if ( .... $i is id .... ) then .... do something .... else ... do something else ...
Run Code Online (Sandbox Code Playgroud)

这可能吗?如何区分什么时候$i是id,什么时候是field?

Oli*_*lam 4

另一个巧妙的 XQuery 解决方案是使用类型开关:

for $i in $records/record/field | $records/record/id
return
  typeswitch($i)
  case element(id) return ...
  case element(field) return ...
  default return ...
Run Code Online (Sandbox Code Playgroud)