À L'Aide De La Classe XmlTextReader
Je suis un programmeur débutant de commencer avec le C#, et des services web.
Dans le Service.cs
fichier de mon web service, j'ai créer un ReadXMLFile()
méthode où je suis en train de lire un fichier XML existant, prenez-le et placez-les propriétés correspondantes (DataMembers) que j'ai créé dans le IService.cs
fichier.
Mon problème est que mon code est essentiellement de ne rien faire. J'ai essayé de regarder pour les sites web et tutoriels sur ce sujet, mais il n'y a vraiment pas beaucoup, surtout pour un débutant comme moi. Quelqu'un a une idée de comment je dois aller à ce sujet, parce que ce que j'ai essayé jusqu'à présent est évidemment faux.
Ci-dessous est mon ReadXMLFile()
méthode.
void ReadXMLFile()
{
XmlTextReader reader = new XmlTextReader("ClassRoll.xml");
reader.Read();
while (reader.Read())
{
if (reader.Name == "id")
{
id = reader.ReadString();
}
else if (reader.Name == "firstname")
{
link = reader.ReadString();
}
else if (reader.Name == "lastname")
{
description = reader.ReadString();
}
else if (reader.Name == "count")
{
description = reader.ReadString();
}
else if (reader.Name == "testscore")
{
description = reader.ReadString();
}
}
}
ceci est un exemple de mon fichier xml
<classroll>
<student>
<id>101010</id>
<lastname>Smith</lastname>
<firstname>Joe</firstname>
<testscores count="5">
<score>65</score>
<score>77</score>
<score>67</score>
<score>64</score>
<score>80</score>
</testscores>
</student>
</classroll>
Vous devez partager votre fichier xml ou d'un échantillon de si elle est trop grande, de sorte que nous pouvons voir sa structure.
Vous ne devez pas utiliser XmlTextReader directement. Utilisation
XmlReader.Create()
à la place.OriginalL'auteur Jess | 2012-04-14
Vous devez vous connecter pour publier un commentaire.
Vous êtes probablement manquant IsStartElement() dans ta boucle while:
Aussi, il serait plus facile à utiliser XPath ou LINQ to XML de lire votre XML, bien sûr, il dépend du format de fichier. Voici quelques exemples: XPath et LINQ.
MODIFIER: après avoir vu le fichier XML de détails
Vous devez mettre à jour votre logique pour garder une trace de courant
student
et sestestscores
. Notez également quecount
est un attribut. Il peut dégénérer très rapidement, je vous suggère de prendre un regard sur les échantillons mentionnés ci-dessus.OriginalL'auteur tenorsax
Je pense, que vous recevez le meilleur résultat en l'utilisant XmlDocument
OriginalL'auteur Mikhail Rassudishkin
La raison que sa ne fonctionne pas parce que, par exemple: lorsque le lecteur.Nom == "firstname" est vrai mais ce n'est pas vrai avec ses éléments de valeur. Ce que cela signifie exactement est l'objet de lecteur lit à côté Nodetype, qui est XmlNodeType.De l'élément. Donc dans ce cas de regarder votre fichier XML, à l'aide de lecteur.Read(); function nouveau lit nœud suivant, qui est XmlNodeType.Texte, et sa valeur est alors Joe. Im givin vous exemple de la version de travail.
}
OriginalL'auteur Jon Koivula