XElement Чтобы получить все имена узлов узлов под элементами элементами

StackOverflow https://stackoverflow.com/questions/4272385

Вопрос

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

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

Хочу войти в <Node>, петля с помощью проверки на имя узла / элемента и получите его значение. Что-то вроде этого, скажем, имя - «Subel1», используйте «ABC» для Task1, при видении имени элемента - «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 to 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.name.aspx. проверить на имя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top