使用XmlDocument从子节点读取属性字符串

时间:2013-02-07 12:44:27

标签: c# xml xmlnodelist

在使用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>

每个start元素都会显示一个正在运行的进程及其ID(以及稍后的其他内容)。

所以我使用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),并且无法弄清楚如何获得其他属性。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用child.Attributes

答案 1 :(得分:2)

查看XMLNode C#类,了解可用的属性概述: http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.aspx

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

只会为您提供元素的名称,这就是您所接收的内容。您还需要查看.Value属性和.Attributes(后者可以通过枚举)。