質問

私はこのようなアプローチを考えています。これが実際にこの方法で機能するかどうかを教えてください:サンプルXMLの場合:

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

入りたい <Node>, 、ノード/要素名をチェックしてループし、値を取得します。このようなもの、たとえば、名前はタスク1に「subel1」を使用しています。要素名が「subel2」であることを確認すると、タスク2が行われます。すべてのサブエレメントをチェックする必要があります!

例(動作していないコード):

 //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

他のアプローチ(xelement、xmldocument、selectnodes()などを考えることができれば、それも高く評価されます!

役に立ちましたか?

解決

このタスクでは、ノード名とノード値のリスト/辞書を作成するだけで、スイッチでそれを使用できます。

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

これで、名前のリスト、バリューペアがスイッチメソッドに単純に渡すことができます。

他のヒント

まだそれを利用していませんが、linqからXMLはあらゆる種類の素晴らしいように見えます。ここにいくつかのリンクがあります。MSDNリファレンス linqに夢中

使用する http://msdn.microsoft.com/de-de/library/bb342765.aspx すべての子供を獲得するために http://msdn.microsoft.com/de-de/library/system.xml.linq.xelement.name.aspx 名前を確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top