获取所有子元素节点名称和值的XElement

时间:2010-11-24 23:06:08

标签: c# xmldocument xelement selectnodes

我正在考虑这样的方法。 如果这实际上可以这样工作,请告诉我: 对于Sample 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()等,那也将受到赞赏!

3 个答案:

答案 0 :(得分:11)

对于此任务,您只需要创建节点名称和节点值的列表/字典,然后就可以在交换机中使用它了....

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

现在您有一个名称,值对的列表,您只需将其传递给切换方法。

答案 1 :(得分:0)

还没有使用它,但LINQ to XML看起来像各种各样的真棒。这是一些链接。 MSDN Reference Hooked On LINQ

答案 2 :(得分:0)