我想创建一个编译字符串来与XPathExpression一起使用它。我已经导航到一个子集并创建了一个迭代器。基于该迭代器的当前位置,我创建一个新的currentNode。现在我想要创建一个确切的表达式,只有那个节点,所以我可以创建一个只选择这些子元素的迭代器。如何使用XPathNavigator访问XML子项的索引?
public XPathNodeIterator extractSubChildIterator(XPathNavigator currentNode)
{
XPathNavigator nav = currentNode.Clone();
string myXPathString = "/"+ nav.LocalName + "["+ HOWDOIGETTHISNUMBER(nav) +"]";
while (nav.MoveToParent())
{
if (!(nav.Name == ""))
myXPathString = "/" + nav.LocalName + "[" + HOWDOIGETTHISNUMBER(nav) + "]" + myXPathString;
}
myXPathString += "/*";
XPathExpression expr = nav.Compile(myXPathString);
return currentNode.Select(expr);
}
函数HOWDOIGETTHISNUMBER()是我没有完全得到的东西的占位符。我立足于This Page在examplelist我表达字符串 - “/目录/ CD [1]选择目录的第一张CD的孩子”
好问题,+1。查看我的答案获得简单的解决方案。 :) – 2010-12-10 18:28:16