2010-09-08 121 views
0

我想查詢在SQL Server中的某些XML中的列表,但我遇到了困難:SQL:查詢列表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 

而且它返回所有的空值(又名我的查詢是錯誤的)。有什麼建議麼?

回答

2

您寫道:

我要搶第一方的第一 主題類型

所以,正確的XPath應該是:

/BaseReport/Parties/Party[1]/SubjectType/ListItem[1]/@Name 
+0

@Alejandro美麗的,到底是什麼我需要,謝謝! – mint 2010-09-08 14:52:49

+0

@mint:你好! – 2010-09-08 14:55:26