XML Linq und Dictionary



  • Guten Tag,

    Ich möchte eine selbsterstellte XML File auslesen und die einzelnen Knoten <TAG ID="0010">, <TAG ID="0020"> usw. jeweils ein eigenes Dictionary geben. Damit kann ich leichter in meinem Programm arbeiten.

    Hier ist meine XML File:

    <?xml version="1.0" encoding="utf-8"?>
    <FILE>
      <TAG ID="0010">
        <PAIR KEY="Key11" VALUE="Value11" />
        <PAIR KEY="Key12" VALUE="Value12" />
      </TAG>
      <TAG ID="0020">
        <PAIR KEY="Key21" VALUE="Value21" />
        <PAIR KEY="Key22" VALUE="Value22" />
      </TAG>
    </FILE>
    

    Ich möchte dabei das der Knoten <TAG ID="0010"> mit seinen Elementen in ein eigenes Dictionary kommt als auch der Nächste und so weiter.
    Ich habe bereits schon mit der Methode .ToDictionary() gearbeitet, aber da werden mir alle <PAIR> Werte eingegeben jedoch möchte ich sozusagen die TAGS anhand ihrer ID selektieren und mir einen Bereich herausnehmen.

    Ich bin für jeden konstruktiven Beitrag dankbar!

    Gruß,
    Gast01



  • Es müssen keinen direkten Code-Beispiele verfasst werden, welche bereits die Lösung für das Problem darstellen.
    Mir genügen auch Denkanstöße, sodass ich mir die Lösung selbst erarbeiten kann.
    Vielen Dank im Voraus.

    Gruß,
    Gast01



  • Ich habe eine "Lösung" für mein Problem gefunden.
    Meine folgende Vorgehensweise schaut wie folgt aus:

    var xml = XElement.Load(@"D:\file.xml").Elements().ToList();
    var dic = xml[0].Elements().ToDictionary( x => x.FirstAttribute.Value, x => x.FirstAttribute.NextAttribute.Value);
    

    Soweit erfüllt es meine Absicht.
    Ich lasse dabei alles in eine Liste laden und greife dann über den Index auf die einzelnen TAGs zu, welche ich über ihren VALUE selektieren kann (if-anweisung).
    Ich finde das dies noch viel effizienter geht. Also lasst es mich wissen, wenn Ihr eine besseren Ansatz habt.
    Vielen Dank im Voraus!

    Gruß,
    Gast01


Anmelden zum Antworten