如何通过xQuery从XML中同名多个元素检索元素的值?

时间:2012-10-30 09:46:08

标签: sql sql-server xml xquery

我在sql server

中有和xml这样的字段
<propertyDetail>
  <importID>1735532</importID>
  <pincode />
  <landmarks />
  <features>
    <feature>Society  Name: sec-87 srs peral  floor faridabad</feature>
    <feature>Transaction: Resale Property</feature>
    <feature>Possession: Dec,2011</feature>
    <feature>*Ownership: Freehold*</feature>
    <feature>Age of Property: Under Construction</feature>
  </features>
</propertyDetail>

我想通过xQuery检索具有“所有权:永久产权”值的功能,功能序列可能会有所不同。

欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

您可以在过滤器表达式中检查该功能是否存在,即:

//propertyDetail[features/feature[. eq "*Ownership: Freehold*"]]

答案 1 :(得分:1)

@x是你的xml

select @x.query('//feature[. = "*Ownership: Freehold*"]')

如果您想找到以所有权开头的任何内容,那么

select @x.query('//feature[substring(.,1,9)="Ownership"]')

(但理想情况下,如果可以,您应该改进XML结构)