XElement для получения всех имен и значений узлов подэлементов - PullRequest
7 голосов
/ 25 ноября 2010

Я думаю о подходе что-то вроде этого.Пожалуйста, дайте мне знать, если это действительно может работать следующим образом: Для примера XML:

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

Хотите перейти к <Node>, пройтись по проверке имени узла / элемента и получить его значение.Примерно так, скажем, имя «SubEl1», используйте «abc» для задачи 1, увидев, что имя элемента «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 () и т. Д., это тоже будет оценено!

Ответы [ 3 ]

11 голосов
/ 25 ноября 2010

Для этой задачи похоже, что все, что вам нужно сделать, это просто создать список / словарь имени узла и значения узла, а затем использовать его в своем переключателе ....* теперь у вас есть список имен, пар значений, которые вы можете просто передать методу переключения.

0 голосов
/ 25 ноября 2010

используйте http://msdn.microsoft.com/de-de/library/bb342765.aspx для получения всех детей и http://msdn.microsoft.com/de-de/library/system.xml.linq.xelement.name.aspx для проверки имени.

0 голосов
/ 25 ноября 2010

Еще не использовал его, но LINQ to XML выглядит как все офигенное.Вот несколько ссылок. Ссылка MSDN Подключено LINQ

...