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

本文关键字:属性 字符串 读取 子节点 XmlDocument 使用 | 更新日期: 2023-09-27 17:58:04

我在使用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),而不知道如何获取其其他属性。

谢谢!

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

您可以使用child.Attributes

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

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

只会给您元素的名称,这就是您正在接收的内容。您还需要查看.Value属性和.Attributes(依次可以通过枚举)。