【问题标题】:Xquery nodes valueXquery 节点值
【发布时间】:2010-06-25 13:08:39
【问题描述】:

我需要在我的表中获取 AccountName 的值

<rows>
  <Row xmlns="http://adcenter.microsoft.com/advertiser/reporting/v5/XMLSchema">
    <AccountName value="MA_Yellowpages - AdStore" />
  </Row>
</rows>

我正在使用下面的东西-

;WITH XMLNAMESPACES('http://adcenter.microsoft.com/advertiser/reporting/v5/XMLSchema' AS ns)
select
temp.query('AccountName[1]').value('@value','varchar(1000)') AS AC
from  yp.dbo.Audit_ApiCallRawXml CROSS APPLY
      RawXML.nodes('/rows/ns:Row') lg(temp)

【问题讨论】:

  • 如果您发布代码或 XML,在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮 (101 010) 以很好地格式化和语法高亮!

标签: sql-server xquery


【解决方案1】:

您快到了 - 但您还需要确保在 &lt;Row&gt; 节点内的 AccountName 元素上使用 XML 命名空间。另外,我会这样写你的查询:

;WITH XMLNAMESPACES('http://adcenter.microsoft.com/advertiser/reporting/v5/XMLSchema' AS ns)
SELECT
   temp.value('(ns:AccountName/@value)[1]', 'varchar(1000)') AS AC
FROM
   yp.dbo.Audit_ApiCallRawXml 
CROSS APPLY
   RawXML.nodes('/rows/ns:Row') lg(temp)

这应该会起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多