我正在学习Xquery。我的XML文档中有这个标记。
<element a="1" b="2" c="3" name="testgroupID">198</element>
<element a="11" b="12" c="13" name="testgroupverifyID" binary="hidden"/>
我是否知道如何使用xquery创建类似下面的内容?
<mytags>
<a>1</a>
<b>2</b>
<c>3</c>
<name>testgroupID</name>
<value>198</value>
</mytags>
<mytags>
<a>11</a>
<b>12</b>
<c>13</c>
<name>testgroupverifyID</name>
<binary>hidden</binary>
</mytags>
目前我只能使用静态方式来执行此操作,例如:
$ tag:= $ x / @ a 然后使用{$ tag
返回它请告知。非常感谢你。
答案 0 :(得分:2)
这个XQuery:
for $elem in /root/element
return element mytags {
for $child in $elem/(@*|text())
return element {if ($child instance of attribute())
then name($child)
else 'value'} {
string($child)
}
}
输出:
<mytags>
<a>1</a>
<b>2</b>
<c>3</c>
<name>testgroupID</name>
<value>198</value>
</mytags>
<mytags>
<a>11</a>
<b>12</b>
<c>13</c>
<name>testgroupverifyID</name>
<binary>hidden</binary>
</mytags>