Je veux créer une chaîne de compilation pour l'utiliser avec une XPathExpression. J'ai déjà navigué vers un sous-ensemble et j'ai créé un itérateur. Basé sur la position actuelle de cet itérateur, je crée un nouveau currentNode. Maintenant je veux créer l'expression exacte qui mène à cela, et seulement ce noeud, ainsi je peux alors créer un itérateur qui sélectionne seulement ces enfants.Comment puis-je accéder à l'index d'un enfant XML à l'aide d'un XPathNavigator?
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);
}
La fonction HOWDOIGETTHISNUMBER() est l'espace réservé pour la chose que je DonT très bien compris. Je base mon expression chaîne sur la examplelist sur This Page - "/ catalogue/cd [1] sélectionne le premier enfant cd du catalogue"
Bonne question, +1. Voyez ma réponse pour une solution simple. :) –