Je n'ai pas besoin d'éditer un fichier XML ou quoi que ce soit, ceci est uniquement pour la lecture et l'analyse.
Je veux pouvoir gérer le document XML comme dictionnaire, comme: est-ce possible? Traiter le document XML (analysé) comme un dictionnaire? P> Réponse à Mehrdad:
Il varie de temps en temps, cela dépend de la demande de l'utilisateur. Si l'utilisateur demande nom d'utilisateur = doc ["nom d'utilisateur"]; code>, mais je ne peux pas savoir comment "convertir" document. J'ai également rencontré le problème avec des noms de clés en double, mais cela pourrait être évité toutefois en ajoutant chaque valeur avec 1, 2 etc.; Faciliter la tâche facile à boucler aussi. P>
x code>, il sera: p>
<xml>
<mengde>100</mengde>
<type>3</type>
<mail>foo</mail>
<crypt>bar</crypt>
<username>bar</username>
</xml>"
4 Réponses :
Cette question était Demandé avant ici et vous pouvez donc trouver toutes les réponses dans ce lien: p> Convertir XML vers le dictionnaire trié p> espère qu'il aide. p> p>
Ty, mais je préfère pouvoir utiliser le nom de tag que d'ajouter un attribut à tout.
Ce n'est pas exactement ce que vous recherchez, mais peut-être d'intérêt: http://blogs.msdn.com/csharsfaq/archive/2009/10/01/dynamic-in-c-4-0- Introduction-the-expandoobject.aspx p>
C'est pour le C # 4.0 et sur l'utilisation d'expandoObject et dynamique, donc cela ne m'aidait pas.
Vous pouvez utiliser Linq vers XML pour faire ce que vous voulez (si je comprends ce que vous voulez)
Merci! Travaillé exactement comme prévu :)
Votre question n'est vraiment pas très claire, mais je pense que cela fait ce que vous voulez:
XmlDocument doc = new XmlDocument(); doc.LoadXml(@"<xml> <mengde>100</mengde> <type>2</type> <foo>bar</foo> </xml>"); Dictionary<string, string> d = new Dictionary<string, string>(); foreach (XmlNode n in doc.SelectNodes("/xml/*") { d[n.Name] = n.Value; }
Quelle est la structure du document XML?
Comment voulez-vous gérer les sous-documents? Qu'est-ce que doc ["foo"] retourner dans 1 x> 4 5 b> bas> doc > code>? Vous devez expliquer comment vous voulez accéder à Doc / FOO / A pour nous aider.
Les nœuds contenant des nœuds seront ignorés, je n'utilise que celles contenant du texte. Dans votre exemple: x, a et b.