我有这样的XML:
<Table Name="Table">
<TableHeader>
<TableCol Name="Date"/>
<TableCol Name="Number"/>
<TableCol Name="Reason"/>
<TableCol Name="Time"/>
</TableHeader>
</Table>
我希望得到这样的结果:
HeaderName
-------------------
Date
Number
Reason
Time
我的xPath查询是这样的:
SELECT * FROM OPENXML (@xmlHandle, @docDescriptionTable)
wITH ( HeaderName varchar(255) '/Table/TableHeader//TableCol/@Name' );
我得到了这个结果:
HeaderName
---------
Date
我做错了什么?
答案 0 :(得分:1)
以下是使用nodes() Method
declare @xml xml = ' <Table Name="Table">
<TableHeader>
<TableCol Name="Date"/>
<TableCol Name="Number"/>
<TableCol Name="Reason"/>
<TableCol Name="Time"/>
</TableHeader>
</Table>'
SELECT
col.value('./@Name','varchar(50)')
FROM
@xml.nodes('/Table/TableHeader/TableCol') AS t(col)
结果:
HeaderName
----------
Date
Number
Reason
Time