假设您有一个 TSQL 查询:
1 as 'Category1/@Level',
2 as 'Category2/@Level',
t.MainCat as 'Category1',
t.SubCat as 'Category2'
FOR XML PATH (''), ROOT('Taxonomy')
产生以下结果:
<Taxonomy>
<Category1 Level="1">Clothing</Category1>
<Category2 Level="2">Jeans</Category2>
</Taxonomy>
元素 Category1 和 Category2 具有唯一的名称,以便 sql 查询生成并转换为 xml 格式。这就是我使用 Category1 和 Category2 的原因。我希望最终结果是这样的:
<Taxonomy>
<Category Level="1">Clothing</Category>
<Category Level="2">Jeans</Category>
</Taxonomy>
这可以使用像这里的 XML EXPLICIT 来完成,但是由于我的代码要大得多,它会很快变得非常混乱和复杂。
使用 xml.modify 您可以更改值或属性,但不能更改元素本身。
有没有办法将第一个查询结果存储在@X1 xml 变量中,然后将元素 Category1 和 Category2 更改为 Category 并将其放入变量 @X2?类似于在文本文件中使用的搜索和替换,但在查询期间。