XElement Чтобы получить все имена узлов узлов под элементами элементами
-
28-09-2019 - |
Вопрос
Я думаю о подходе чего-то вроде этого. Пожалуйста, дайте мне знать, если это на самом деле может работать так: для образца 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. проверить на имя.