1

我有以下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>'

我想得到以下作为我的查询的结果

<obligaciones>
  <Obligacion id = "51" TipoCancelacionObligacionId = "1" > </Obligacion>
</obligaciones>

有人可以帮忙查询吗?我尝试了一段时间没有成功。

提前致谢。

4

1 回答 1

3

这个怎么样:

SELECT  
    @Obligaciones.query('/obligaciones/Obligacion[@id="51"]')
FOR XML PATH (''),ROOT('obligaciones')

给了我想要的输出:

<obligaciones>
  <Obligacion id="51" TipoCancelacionObligacionId="1" />
</obligaciones>

@Obligaciones.query()获取带有属性的 XML 元素,id=51然后我将生成的 XML 行包装到一个名为 .xml 的 XML 根元素<obligaciones>中。

更新:如果您希望获取第一个元素而不管其id属性如何 - 请改用此查询:

SELECT  
    @Obligaciones.query('/obligaciones/Obligacion[1]')
FOR XML PATH (''),ROOT('obligaciones')
于 2012-11-23T19:28:18.433 回答