Чтение строки атрибута из дочерних узлов с помощью XmlDocument

У меня возникли проблемы с чтением строк атрибутов при использовании XmlDocument для чтения дочерних узлов. Чтобы быть более конкретным, я пытаюсь прочитать XML, содержащий список запущенных процессов:

<Process_List>
  <Processes>
    <ibmpmsvc ID_1="860" />
    <svchost ID_2="8616" />
    <chrome ID_4="4300" />
    <SearchIndexer ID_5="3868" />
    <smss ID_6="416" />
  </processes>
</Process_List>

Каждый стартовый элемент представляет собой запущенный процесс вместе с его идентификатором (и некоторыми другими вещами позже).

Итак, я использую XmlDocument для чтения каждого дочернего узла / Process_List / Processes:

XmlNodeList xnList = xml.SelectNodes("/Process_List/Processes");
foreach (XmlNode xn in xnList)
{
    XmlNodeList cxnList = xn.ChildNodes;
    foreach (XmlNode child in cxnList)
    {
        listProc1.Add(child.Name.ToString());
    }
}

Проблема в том, что я получаю только имя ребенка (ibmpmsvc, svchost, chrome) и не могу понять, как получить другие его атрибуты.

Благодарность!


person Metampeta    schedule 07.02.2013    source источник
comment
Пробовал Child.attribute ??   -  person    schedule 07.02.2013
comment
Что вы хотите добавить в listProc1? Составная строка? А почему нельзя использовать Linq to Xml?   -  person Sergey Berezovskiy    schedule 07.02.2013


Ответы (2)


Для этого вы можете использовать child.Attributes.

person Daniel Hilgarth    schedule 07.02.2013

Взгляните на XMLNode C # Class, чтобы узнать, какие свойства вам доступны: http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.aspx

listProc1.Add(child.Name.ToString());

Вы получите только имя элемента, которое вы получаете. Вам также нужно посмотреть на свойство .Value и .Attributes (которые, в свою очередь, могут быть пронумерованы).

person James Senior    schedule 07.02.2013