Domanda

I have the following piece of code:

declare @BillingAddresses xml
set @BillingAddresses=convert(xml,N'
<BillingAddresses>
  <BillingAddress Address1="P.O. Box 2162" City="Huntington Beach"/>
  <BillingAddress Address1="12933 Monarch" City="Aliso Viejo"/>
  <BillingAddress Address1="6666 Von Karman Ave" City="Irvine"/>
</BillingAddresses>')


SELECT
    Addr.Col.value('Address1[1]', 'varchar(100)'),  
    Addr.Col.value('City[1]', 'varchar(100)')
FROM @BillingAddresses.nodes('/BillingAddresses/BillingAddress') Addr(Col)

I am getting all NULLs. How can I get Address1 and City attributes out of the XML snippet?

È stato utile?

Soluzione

To access XML element attributes you must use appropriate XPath syntax.

declare @BillingAddresses xml
set @BillingAddresses=convert(xml,N'
<BillingAddresses>
  <BillingAddress Address1="P.O. Box 2162" City="Huntington Beach"/>
  <BillingAddress Address1="12933 Monarch" City="Aliso Viejo"/>
  <BillingAddress Address1="6666 Von Karman Ave" City="Irvine"/>
</BillingAddresses>')


SELECT
    Addr.Col.value('@Address1', 'varchar(100)'),  
    Addr.Col.value('@City', 'varchar(100)')
FROM @BillingAddresses.nodes('/BillingAddresses/BillingAddress') Addr(Col)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top