我需要在表格中获取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)
答案 0 :(得分:1)
您几乎就在那里 - 但您还需要确保在AccountName
节点内的<Row>
元素上使用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)
这应该有希望。