J’essaie de lire un fichier ncx (fichier xml) en utilisant XElement:
XElement foundNode = ncx.Descendants("navPoint").Where(r => r.Atsortingbute("class").Value == "chapter").FirstOrDefault();
Par conséquent, foundNode est null car ncx.Descendants (“navPoint”) renvoie une énumération vide. Mais les données sont là:
Fine I. BLIND
Pourriez-vous s’il vous plaît expliquer ce qui ne va pas ici? Merci.
Vous devez prendre en compte l’espace de nommage XML:
XDocument ncx = XDocument.Load("file.xml"); XNamespace df = ncx.Root.Name.Namespace; XElement foundNode = ncx.Descendants(df + "navPoint").Where(r => r.Atsortingbute("class").Value == "chapter").FirstOrDefault();
Vous pouvez également supprimer des espaces de noms ou faire référence à des éléments sans utiliser l’espace de noms à l’aide de la propriété XElement.Name.LocalName: Exemples ici