I have the following xml
我有以下xml
declare @Obligaciones xml
set @Obligaciones = '<obligaciones>
<Obligacion id = "51" TipoCancelacionObligacionId = "1" > </Obligacion>
<Obligacion id = "52" TipoCancelacionObligacionId = "2"> </Obligacion>
<Obligacion id = "53" TipoCancelacionObligacionId = "2"> </Obligacion>
</obligaciones>'
I would like to get the following as the result of my query
我希望得到以下作为我的查询的结果
<obligaciones>
<Obligacion id = "51" TipoCancelacionObligacionId = "1" > </Obligacion>
</obligaciones>
Can sombody help with the query? I been trying for a while without success.
sombody可以帮助查询吗?我一直试着没有成功。
Thanks in advance.
提前致谢。
1 个解决方案
#1
3
How about this:
这个怎么样:
SELECT
@Obligaciones.query('/obligaciones/Obligacion[@id="51"]')
FOR XML PATH (''),ROOT('obligaciones')
Gives me the desired output:
给我想要的输出:
<obligaciones>
<Obligacion id="51" TipoCancelacionObligacionId="1" />
</obligaciones>
The @Obligaciones.query()
fetches the XML element with the id=51
attribute, and then I wrap the resulting line of XML into a XML root element called <obligaciones>
.
@ Obligaciones.query()使用id = 51属性获取XML元素,然后将生成的XML行包装到名为
Update: if you're looking to get the first element regardless of its id
attribute - use this query instead:
更新:如果您想要获取第一个元素而不管其id属性 - 请改用此查询:
SELECT
@Obligaciones.query('/obligaciones/Obligacion[1]')
FOR XML PATH (''),ROOT('obligaciones')
#1
3
How about this:
这个怎么样:
SELECT
@Obligaciones.query('/obligaciones/Obligacion[@id="51"]')
FOR XML PATH (''),ROOT('obligaciones')
Gives me the desired output:
给我想要的输出:
<obligaciones>
<Obligacion id="51" TipoCancelacionObligacionId="1" />
</obligaciones>
The @Obligaciones.query()
fetches the XML element with the id=51
attribute, and then I wrap the resulting line of XML into a XML root element called <obligaciones>
.
@ Obligaciones.query()使用id = 51属性获取XML元素,然后将生成的XML行包装到名为
Update: if you're looking to get the first element regardless of its id
attribute - use this query instead:
更新:如果您想要获取第一个元素而不管其id属性 - 请改用此查询:
SELECT
@Obligaciones.query('/obligaciones/Obligacion[1]')
FOR XML PATH (''),ROOT('obligaciones')