2012-10-09 29 views
0

我想使用XPath獲取節點的索引,但我很樂意在一行中完成。我希望將存儲的int作爲節點的存在證明,以及匹配節點的第一次出現的位置。使用XPATH獲取SelectSingleNode索引

我現在做了我想做的事情,但它匹配了最後一次匹配節點而不是第一次。我可以改變這一點讓我成爲第一個嗎?

int base_Schemes = xmlWebConfig.SelectNodes("/configuration/Security/Authentication/schemes/scheme[@type='ssoscheme, sso']/preceding-sibling::scheme").Count; 

回答

1

您是否在尋找position()的功能?

嘗試/configuration/Security/Authentication/schemes [@type = 'ssoscheme, sso']/preceding-sibling::scheme/position()

+0

我是Xpath新手,所以這可能會工作,但它不會讓我把它作爲一個int存儲,因爲SelectNodes返回一個XmlNodeList。我能解決這個問題嗎? – Jon

+0

我將它改爲int basePosition = xmlWebConfig.SelectNodes(「/ configuration/Security/Authentication/schemes/scheme [@ type ='SSO.SSOScheme,SSO']/preceding-sibling :: scheme/position()」)。Count ;但是當我運行它時,它一直在抱怨。這僅支持Xpath 2.0+嗎?添加.Count是讓它接受該行的唯一方法。 – Jon