我正在尝试查询SQL Server中的某些XML,但遇到了困难:
以下是一些示例XML:
<BaseReport>
<Parties>
<Party>
<SubjectType>
<ListItem Name="SubjectType1Name" />
<ListItem Name="SubjectType2Name" />
</SubjectType>
</Party>
<Party>
<SubjectType>
<ListItem Name="SubjectType1Name" />
<ListItem Name="SubjectType2Name" />
</SubjectType>
</Party>
</Parties>
</BaseReport>
我的目标是从我的xml中提取主题类型名称。我不知道如何查询列表中的列表。我想抓住第一个派对的第一个主题类型。我试过以下无济于事:
SELECT myXML.value('(/BaseReport/Parties/Party/SubjectType/@Name)[1]', 'varchar(50)') as Name_Type
FROM MyTable
它返回所有空值(也就是我的查询错误)。有什么建议吗?
答案 0 :(得分:2)
您写道:
我想抓住第一个派对的第一个 主题类型
所以,正确的XPath应该是:
/BaseReport/Parties/Party[1]/SubjectType/ListItem[1]/@Name