Comment obtenir des données à partir d'un Fichier XML en C# à l'aide de classe XMLDocument?
Bonsoir à Tous, et bonne fin de semaine!.
J'ai essayé toute la journée pour comprendre comment analyser mon fichier XML simple donc, je peux comprendre, il suffit d'écrire un projet personnel que je veux travailler.
J'ai lu des articles sur ce site et les autres, mais ne peut pas obtenir passé où j'en suis 🙁
Mon Document XML est ...
<XML>
<User>
<ID>123456789</ID>
<Device>My PC</Device>
</User>
<History>
<CreationTime>27 June 2013</CreationTime>
<UpdatedTime>29 June 2013</UpdatedTime>
<LastUsage>30 June 2013</LastUsage>
<UsageCount>103</UsageCount>
</History>
<Configuration>
<Name>Test Item</Name>
<Details>READ ME</Details>
<Enabled>true</Enabled>
</Configuration>
</XML>
Je suis en train d'essayer d'obtenir la valeur dans les détails de l'élément (LISEZ-MOI). Ci-dessous mon code
//Start Logging Progress
Console.WriteLine("Test Application - XML Parsing and Creating");
Console.ReadKey();
//Load XML Document
XmlDocument MyDoc = new XmlDocument(); MyDoc.Load(@"E:\MyXML.XML");
//Select Node
XmlNode MyNode = MyDoc.SelectSingleNode("XML/Configuration/Details");
//Output Node Value
Console.WriteLine(String.Concat("Details: ", MyNode.Value));
//Pause
Console.ReadKey();
Ma console application est en cours d'exécution et outputing "Cible:" mais ne me donne pas le détail de l'intérieur de l'élément.
Quelqu'un peut-il voir pourquoi ce qui se passe, et peut-être me donner des conseils si je suis complètement à côté de la roue? Je n'ai aucune connaissance préalable en lecture de fichiers XML; de là, là où je suis maintenant 🙂
Merci! Tom
OriginalL'auteur Tom McClean | 2013-06-29
Vous devez vous connecter pour publier un commentaire.
Avec le votre expression XPATH
votre sont la sélection d'un élément de sorte que le type de la MyNode sera
XmlElement
mais laValue
d'unXmlElement
est toujoursnull
(voir sur MSDN) si vous avez besoin d'utiliser XmlElement.InnerText ou XmlElement.InnerXml plutôt que.De sorte que la changé votre code de
Ou vous pouvez sélectionner le contenu d'un élément à l'aide de XPATH
text()
fonction, dans ce cas MyNode seraXmlText
où vous obtenez sa valeur avecValue
:Au passage si vous êtes de toute façon l'apprentissage de manipulation de XML en C#, vous devriez vérifier LINQ to XML qui est une autre/nouvelle méthode pour travailler avec XML en C#.
OriginalL'auteur nemesv
Juste pour les intérêts, peu connue de la "simple" syntaxe est la suivante:
Remarque que cela (et le XPath approche) pourrait faire pop si votre XML n'est pas conforme à la structure que vous êtes enceinte, si vous avait idéalement mis la validation de certains là.
OriginalL'auteur Jason Williams
U peut utiliser Xpath de la bibliothèque pour que (u doit inclure "le Système de.Xml.XPath"):
le code ci-dessus itérer sur chaque nœud appelé (les Détails) de l'extraction de l'information et de l'imprimer.
OriginalL'auteur m4c_4rthur