我创建了一个脚本,它从 SQL 中的表中获取数据并生成 XML 输出。 2 个标签的父标签、子标签和子标签都是相同的。 SQL 脚本将它们作为一个 XML 值而不是 2 个输出。
SELECT
Request.TransactionRef AS [RequestHeader/RequestID],
'Deal.Trial' AS [RequestHeader/Action],
'DoDealValidate' AS [RequestHeader/ActionFlags/Flag],
'DoDealDerive' AS [RequestHeader/ActionFlags/Flag]
目前的结果是:
<ActionFlags>
<Flag>DoDealValidateDoDealDerive</Flag>
</ActionFlags>
<ActionFlags>
<Flag>DoDealValidate</Flag>
<Flag>DoDealDerive</Flag>
</ActionFlags>
只要放置一些东西empty之间:
SELECT
'blah' AS [RequestHeader/RequestID],
'Deal.Trial' AS [RequestHeader/Action],
'DoDealValidate' AS [RequestHeader/ActionFlags/Flag],
NULL AS [RequestHeader/ActionFlags],
'DoDealDerive' AS [RequestHeader/ActionFlags/Flag]
FOR XML PATH('row');
的背景:
引擎正在运行 SELECT 的列,并一个接一个地构建它们。
- 嗯,有一个
<RequestHeader>
to open
- 并且有一个
<RequestID>
to open
- 再次
<RequestHeader>
,仍然开放,没什么可做的
- 并且有
<Action>
下面...哦,我们必须关闭<RequestID>
并打开一个新的<Action>
- 等等...
在你的代码中<Flag>
仍然是打开的,因此内容被写入到 open 元素中。
我的改变会让引擎思考
- 啊,我们上升了一级,所以我们关闭
<Flag>
首先……哎呀,没什么可写的……
- 现在有一些东西
<Flag>
,已经不开放了,我们必须重新开放一个(新的)<Flag>
node
- 等等...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)