Ce code ne peut pas lire un attribut spécifique - l'attribut name plus précisément. Au contraire, il lire le texte des éléments de noeud et fait un concat sur eux - résultat: 1F20 est ajouté à la listeC# ne peut pas lire l'attribut d'élément avec xpath
var reader = new StringReader(xml);
var xmlreader = new XmlTextReader(reader);
xmlreader.WhitespaceHandling = WhitespaceHandling.None;
var doc = new XPathDocument(xmlreader);
var nav = doc.CreateNavigator();
XPathExpression expr = nav.Compile("/Area/Lights/Light[@Name]");
XPathNodeIterator iterator = nav.Select(expr);
var list = new List<string>();
while (iterator.MoveNext())
{
XPathNavigator nav2 = iterator.Current.Clone();
list.Add(nav2.Value);
}
J'ai aussi essayé: XPathExpression expr = nav.Compile ("// Light [@ Prénom]");
qui retourne vide
C'est le xml que je suis en train de lire:
<Light Index="1" SetChannel="72" GetChannel="60" Name="y1 d1">
<Nodes>1F</Nodes>
<Nodes>20</Nodes>
</Light>
Qu'est-ce que je fais mal - première tentative de XPath ...
Enlever le [] a fait l'affaire - Merci !! – lmkk