2012-10-09 32 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