2009-06-02 18 views
1

J'ai un fichier XML très simple que j'essaie de lire, mais je n'arrive pas à le faire fonctionner. Voici le fichier XML:Problème avec node.GetElementsByTagName en C#

<?xml version="1.0"?> <Results><One>45364634</One><Two>-1</Two><Three>B</Three></Results> 

Je suis en train de récupérer le contenu de deux comme ceci:

XmlNode node = doc.DocumentElement.SelectSingleNode("/Results/Two"); 

ou

XmlNodeList list = doc.GetElementsByTagName("Two"); 

Ni fonctionne. Lorsque je copie coller le XML en tant que chaîne dans le XmlDocument, alors cela fonctionne. Cependant, lorsque j'utilise la chaîne, je sors de la réponse (d'où provient le XML), cela ne fonctionne pas. Je me demande si c'est quelque chose de bizarre comme un problème de personnage ou de ne pas regarder la bonne racine, mais je ne peux pas le comprendre. Des idées?

Merci!

+0

vérifiez vos espaces de noms? – annakata

Répondre

0

Bleh.

Il s'avère que je retournais un document XML dans un document XML. C'est pourquoi l'impression à l'écran avait l'air bien, mais je ne pouvais pas le retirer.

Merci les gars.

1

Vérifiez le codage de fichier Xml ...

Est-ce que ce est ansi? utf-8 ou utf-16?

Vérifiez si le fichier XML a été chargé à partir du fichier. Vérifiez s'il y a une erreur, voir si le document a été rempli.

Je pense que le document n'est pas rempli lors du chargement à partir du fichier. Par votre utilisation du mot «réponse» je suppose que vous passez le xml via HTTP?

+0

J'ai aussi pensé à un problème d'encodage. Bien que, s'il s'agit d'un problème d'encodage, une exception devrait être levée lors du chargement du document (puisqu'il ressemble à un ascii normal, utf8 devrait fonctionner correctement mais utf-16 pourrait poser problème). –

0

Si oui, essayez d'utiliser HttpServerUtility.HtmlDecode (xml) voir si cela fonctionne