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