我在使用xPath表達式時遇到了一些困難。XPath查詢幫助語法
上下文:我正在使用XML文檔將查詢/存儲過程名稱存儲在ASP應用程序中。我使用實用函數來加載xmldocument(如果它以前沒有加載過),我試圖從文檔中選擇與Id元素相匹配的節點集。這是我的XML文檔:
<Queries>
<Id>USER001
<Sql>spUsers_GetUserByUserName</Sql>
</Id >
<Id <USER002
<Sql>spUsers_GetUserByEmail</Sql>
</Queries>
下面是代碼(我用VB.NET)
Module Utility
private sqlXml as xmldocument
'....other stuff.....
Public Function GetSql(queryId as string) as string
dim qry as string
dim node as XmlNode
if sqlXml is nothing then
sqlXml = new xmldocument
sqlXml.Load (..path)
end if
qry = "//Id['" & queryId & "']" 'xPath to select the Id node = to paramter passed
node = sqlxml.SelectSingleNode(qry) 'set node <Id><Sql></Sql></Id>
return node.SelectSingleNode("//Sql").InnerText 'Return the Sql element value from the Id
End Function
問題:
節點變量只返回的第一個元素。我已驗證用於SelectSingleNode
的qry
字符串是正確的Id值(即USER002) - 但是該節點正在使用USER001元素加載。這顯然是xPath表達式搞砸了。我需要調整xPath表達式,以便我可以返回正確的<Id>
元素和相應的子元素<Sql>
。
任何幫助,將不勝感激。
@jbd:XML示例沒用。請發佈一個更好的例子,並使用**'{}'**按鈕。 – 2011-05-04 18:38:46
@jbd:XML格式不正確。 – 2011-05-04 19:39:19