Frage

Ich denke an einem Ansatz so etwas wie diese. Bitte lassen Sie mich wissen, ob dies kann auf diese Weise tatsächlich funktionieren: Für die Probe XML:

<Root>
  <Node>
    <SubEl1>abc</SubEl1>
    <SubEl2>def</SubEl2>
    <SubEl3>123</SubEl3>
    <SubEl4>456</SubEl4>      
  </Node>
</Root>

Möchten Sie in <Node>, Schleife durch Scheck für die Knoten / Elementenamen gehen und seinen Wert erhalten. So etwas wie dies etwa Name ist ‚SubEl1‘ Verwendung ‚abc‘ für task1, auf den Elementnamen zu sehen ist ‚SubEl2‘ ich task2. Alle Unterelemente überprüft werden!

Beispiel (nicht funktionierenden Code):

 //looping through 'Node' children
        switch(SubElName for 'Node element) 
        {
          case : 'SubEl1' 
            //Do Task1 using the SubEl1's value/TextName ...
          case: 'SubEl2' 
           //Task2 ...
          ... 
          case: default //Do default task.....
        } 
    //end loop

Wenn Sie irgendeinen anderen Ansatz denken können (XElement, XmlDocument, Select () usw., die auch geschätzt werden!

War es hilfreich?

Lösung

Für diese Aufgabe sieht es aus wie alles, was Sie tun müssen, ist einfach eine Liste / Wörterbuch des Knotennamen erstellen und den Knotenwert, können Sie dann verwenden, in Ihrem Switch ....

var list = from x in XElement.Load(**yourxmlfile**).Element("Node").Elements()
           select new
           {
              Name = x.Name,
              Value = (string)x
           };

Jetzt haben Sie eine Liste von Namen, Wert-Paare Sie einfach mit Ihrer Switch-Methode übergeben können.

Andere Tipps

Haben keinen Gebrauch davon noch nicht, aber LINQ to XML aussieht wie alle Arten von genial gemacht. Hier sind einige Links. MSDN Reference Hooked On LINQ

scroll top