J'ai un code XML comme ceci:Qu'est-ce que xpath exact pour les premiers noeuds d'un noeud?
<?xml version="1.0" encoding="utf-8" ?>
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Label/>
<Label/>
<Label/>
</Grid>
</Window>
Dans le code, ceci est représenté comme un document XML. La question est dans le code qui suit:
public XmlNodeList GetAllChildrenOfName(XmlNode parent, string childName)
{
string xpath = childName;
//string xpath = "/" + childName;
//string xpath = "//" + childName;
return parent.SelectNodes(xpath);
}
Si j'appelle la méthode pour le noeud xml grille (GetAllChildrenOfName(gridNode,"Label")
) à partir du code XML ci-dessus, il ne retourne pas la liste prévue de 3 étiquettes pour l'une des suggéré Valeurs xpath.
Des suppositions, à quoi devrait ressembler le xpath?
Merci
Ce code n'est pas valide: vous avez déclaré xpath trois fois. Je range l'échantillon de code en premier. – SamStephens
Étant donné que votre code apparaît comme il devrait fonctionner, mais ne le fait pas, il serait utile de nous dire ce que GetAllChildrenOfName() * renvoie * pour 'xpath = childName'. Une nodeliste vide? Comme Marc, je suppose que les espaces de noms pourraient être la raison, mais si c'est le cas, nous ne pouvons pas voir cela à partir de l'échantillon que vous avez posté. Si votre code XML a des attributs xmlns: foo = "bar", sur les éléments Grid ou Label ou tout ancêtre, tenez-nous au courant. – LarsH
aussi, pourquoi le "premier" dans le titre de votre question? Je ne vois rien dans votre question pertinente pour vouloir les premiers enfants par opposition aux enfants plus tard. – LarsH