Я хочу создать строку компиляции, чтобы использовать ее с XPathExpression. Я уже перешел к подмножеству и создал итератор. Основываясь на текущей позиции этого итератора, я создаю новый currentNode. Теперь я хочу создать точное выражение, которое приводит к этому, и только этот узел, поэтому я могу затем создать итератор, который выбирает только эти дочерние элементы.
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 () является заполнителем для вещи, которую я не совсем понимаю. Я строю свое выражение String на примере списка на Эта страница - "/ catalog / cd [1] выбирает первого дочернего диска cd каталога"