2010-11-19 89 views
3

我正在學習Xquery。我在我的XML文檔中有這個標籤。xquery將屬性轉換爲標籤

<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> 

目前我只能用靜態的方式來做到這一點,如:

$標籤:= $ X/@一 ,然後用{$標籤

請告知返回。非常感謝你。

回答

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>