[C#]XML parsing error : selectsinglenode

Résolu/Fermé
Cemninho - 28 sept. 2009 à 16:49
 Cemninho - 29 sept. 2009 à 14:38
Bonjour,

Lors de l'usage de la méthode SelectSingleNode je ne parvient pas à atteindre le noeud désiré. J'ai lu des tonnes de sujets là dessus et je sais qu'il est nécessaire d'avoir un namespace défini, mais malgré celà, je n'y parviens pas.

fichier xml :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConfigList xmlns:nspace="http://www.w3.org/2001/XMLSchema">
<equipe target="all" load="1">
<name>InterMilan</name>
<size>2</size>
<number>2</number>
</equipe>
</ConfigList>

code :
// Ouverture fichier xml
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
XmlDocument CXML = new XmlDocument();
CXML.Load(fs);

// Ajout d'un namespace
XmlNamespaceManager nspace = new XmlNamespaceManager(CXML.NameTable);
nspace.AddNamespace("p", "http://www.w3.org/2001/XMLSchema");

// Selection du premier element du fichier
XmlElement teamElement = (XmlElement)CXML.DocumentElement.FirstChild;

// Récupération du nom
string name =teamElement.SelectSingleNode("//p:name", nspace).Value;

Résultat : j'ai touours un nullException. J'ai essayé plusieurs méthodes, mais il semble que je fasse quelque chose de travers. Pouvez-vous m'aider ?

Merci
A voir également:

3 réponses

Hello,

Voici un bout de code plus simple qui devrait fonctionner :

XmlDocument CXML = new XmlDocument();
CXML.load(path);
XmlNode node = CXML.SelectSingleNode("/ConfigList/equipe/name")
string name = node.innerText;


J'espère que ceci t'aidera...

++
1
Ok j'essaie ça et je te tiens au courant.

Merci
0
Cool ça fonctionne. J'ai remarqué que la méthode qui foirait était "Value". "InnerText" récupère bien le contenu d'un noeud.

Merci beaucoup pour ton aide !
0