给定一个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