Данного типа строки XML, таких какПолучить имя элемента XML и значение атрибута с помощью SQL запроса XPATH
declare @xml xml
SET @xml =
'<PO>
<Amount type="approved">10.00</Amount>
<Year type="">2013</Year>
<GeneralNotes>
<Note>
<NoteText type="instruction">CallVendor</NoteText>
<Date type="">1-1-2013</Date>
</Note>
<Note type="">
<NoteText type="instruction">ShipNow</NoteText>
<Date type="">2-2-2013</Date>
</Note>
</GeneralNotes>
</PO>'
Я хочу, чтобы каждый элемент и его атрибут, если он есть. Мой желаемый результат (без дубликатов) является
ElementName ElementAttribute
PO
Amount approved
Note instruction
Я попытался код, похожий на этой линии
SELECT T.doc.query('fn:local-name(.)')
FROM @xml.nodes('PO//*[1]') AS T(doc)
Это приносит в дубликатах, и я не знаю, как выбрать значение атрибута. Мне нужно только первое вхождение (т. Е. GeneralNotes/Note[1]
). У меня есть большой файл со многими другими именами элементов, поэтому я не хочу разбирать их отдельно.
Очень полезно, спасибо! – rguy