Xml 如何在xquery中将两行值移动到列和相应的行

Xml 如何在xquery中将两行值移动到列和相应的行,xml,xquery,Xml,Xquery,下面是XML输出,我必须从细节字段中提取值-第一个值作为列名,第二个值作为行中的值 示例:列名-重命名计数及其行值为64 列名-successUpdateCount及其行值为64 等等 <root> <details> <values>renamedCount</values> <values>64</values> <values>successUpdateCo

下面是XML输出,我必须从细节字段中提取值-第一个值作为列名,第二个值作为行中的值

示例:列名-重命名计数及其行值为64 列名-successUpdateCount及其行值为64 等等

    <root>

     <details>
     <values>renamedCount</values>
     <values>64</values>
     <values>successUpdateCount</values>
     <values>64</values>
     <values>totalCreateCount</values>
     <values>0</values>
     <values>successRowCount</values>
     <values>64</values>
     <values>invalidCount</values>
     <values>0</values>
     <values>totalUpdateCount</values>
     <values>4211</values>
     <values>failedCount</values>
     <values>64</values>
     <values>totalRowCount</values>
     <values>0</values>
     <values>4275</values>
     <occurrences>0</occurrences>
     <localMessageText>Accounts: 64 (0/64) rows successful, 4211 ignored </localMessageText>
     <type>hierarchyRowsProcessed</type>
  </details>
  <details>
</root>

重命名计数
64
successUpdateCount
64
totalCreateCount
0
成功行数
64
无效人数
0
totalUpdateCount
4211
失败计数
64
总行数
0
4275
0
帐户:64(0/64)行成功,4211行被忽略
层次化过程
请建议如何将一个值指定为变量名,将第二个值指定为它的值

提前感谢您的支持,
Kelly

在这里,分组或窗口子句会有所帮助

例如,可以用整数除以2计算行号,并用它分组值:

let $doc :=
  <root>
    <details>
      <values>renamedCount</values>
      <values>64</values>
      <values>successUpdateCount</values>
      <values>64</values>
      <values>totalCreateCount</values>
      <values>0</values>
      <values>successRowCount</values>
      <values>64</values>
      <values>invalidCount</values>
      <values>0</values>
      <values>totalUpdateCount</values>
      <values>4211</values>
      <values>failedCount</values>
      <values>64</values>
      <values>totalRowCount</values>
      <values>0</values>
      <values>4275</values>
      <occurrences>0</occurrences>
      <localMessageText>Accounts: 64 (0/64) rows successful,
        4211 ignored </localMessageText>
      <type>hierarchyRowsProcessed</type>
   </details>
 </root>
for $values at $pos in $doc/details/values
let $row-number := ($pos + 1) idiv 2
group by $row-number
return <row number="{$row-number}">{$values}</row>
let$doc:=
重命名计数
64
successUpdateCount
64
totalCreateCount
0
成功行数
64
无效人数
0
totalUpdateCount
4211
失败计数
64
总行数
0
4275
0
帐户:64(0/64)行成功,
4211被忽略
层次化过程
在$doc/details/values中的$pos的$value
让$row number:=($pos+1)idiv 2
按$row编号分组
返回{$values}

分组和窗口都需要XQuery 3.0。可以使用Zorba测试查询。

在这里,分组或窗口子句会有所帮助

例如,可以用整数除以2计算行号,并用它分组值:

let $doc :=
  <root>
    <details>
      <values>renamedCount</values>
      <values>64</values>
      <values>successUpdateCount</values>
      <values>64</values>
      <values>totalCreateCount</values>
      <values>0</values>
      <values>successRowCount</values>
      <values>64</values>
      <values>invalidCount</values>
      <values>0</values>
      <values>totalUpdateCount</values>
      <values>4211</values>
      <values>failedCount</values>
      <values>64</values>
      <values>totalRowCount</values>
      <values>0</values>
      <values>4275</values>
      <occurrences>0</occurrences>
      <localMessageText>Accounts: 64 (0/64) rows successful,
        4211 ignored </localMessageText>
      <type>hierarchyRowsProcessed</type>
   </details>
 </root>
for $values at $pos in $doc/details/values
let $row-number := ($pos + 1) idiv 2
group by $row-number
return <row number="{$row-number}">{$values}</row>
let$doc:=
重命名计数
64
successUpdateCount
64
totalCreateCount
0
成功行数
64
无效人数
0
totalUpdateCount
4211
失败计数
64
总行数
0
4275
0
帐户:64(0/64)行成功,
4211被忽略
层次化过程
在$doc/details/values中的$pos的$value
让$row number:=($pos+1)idiv 2
按$row编号分组
返回{$values}
分组和窗口都需要XQuery 3.0。可以使用Zorba测试查询