7

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

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

に行き<Node>、ノード/要素名のチェックをループして、その値を取得したい。このようなもの、たとえば名前が「SubEl1」であるとすると、task1に「abc」を使用します。要素名が「SubEl2」であることがわかると、task2を実行します。すべてのサブ要素をチェックする必要があります!

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

 //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()など)を考えることができれば、それもありがたいです!

4

3 に答える 3

12

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

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

これで、switchメソッドに渡すことができる名前と値のペアのリストができました。

于 2010-11-24T23:34:16.183 に答える
0

まだ使用していませんが、LINQtoXMLはあらゆる種類の素晴らしいもののように見えます。ここにいくつかのリンクがあります。 LINQに夢中になっているMSDNリファレンス

于 2010-11-24T23:14:43.407 に答える
0

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

于 2010-11-24T23:19:09.180 に答える