Meilleure façon de lire à travers xml
SALUT j'ai un document xml comme ceci:
<Students>
<student name="A" class="1"/>
<student name="B"class="2"/>
<student name="c" class="3"/>
</Students>
Je veux utiliser XmlReader
à la lecture de ce xml et retourne une liste d'étudiants List<student>
.
Je sais que cela peut être réalisé comme suit:
List<Student> students = new List<Student>();
XmlReader reader = XmlReader.Create("AppManifest.xml");
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "student")
{
students.Add(new Student()
{
Name = reader.GetAttribute("name"),
Class = reader.GetAttribute("Class")
});
}
}
Je veux juste savoir si il y a une meilleure solution pour cela?
Je suis de l'utilisation de silverlight 4. La structure xml est statique, c'est à dire. il n'aura qu'un seul Students
nœud et tous les étudiants nœud avec le dessus de ladite attributs ne seront là.
OriginalL'auteur Chinjoo | 2011-03-04
Vous devez vous connecter pour publier un commentaire.
Absolument utiliser LINQ to XML. C'est donc beaucoup plus simple:
XmlReader
est un relativement faible niveau de type - je voudrais l'éviter, sauf si vous avez vraiment ne peut pas les moyens pour siphonner l'ensemble du XML en mémoire à la fois. Même alors, il y a des façons de l'utilisation de LINQ to XML en conjonction avecXmlReader
si vous voulez juste les sous-arbres du document.XDocument pas XMLDocument. Et oui, c'est fait: msdn.microsoft.com/en-us/library/...
OriginalL'auteur
C'est beaucoup plus facile si nous sommes à l'aide de Linq xml:
OriginalL'auteur
OriginalL'auteur
Reportez-vous au lien ci-dessous,
http://www.nearinfinity.com/blogs/joe_ferner/performance_linq_to_sql_vs.html
XmlReader
est pris en charge dans Silverlight(http://msdn.microsoft.com/en-us/library/cc189001(v=vs. 95).aspx)
XmlReader
comme unSQLDataReader
est fondamentalement un non-modèle mis en cache, de sorte qu'ils sont axés sur la performance, mais vous pouvez déplacer uniquement "en Avant".OriginalL'auteur
Vous pouvez l'utiliser comme ça:
OriginalL'auteur