如何在列表视图中仅将基节点添加为项目,以获取所有信息

本文关键字:项目 获取 信息 添加 节点 列表 视图 | 更新日期: 2023-09-27 18:36:40

我正在尝试读取XML并获取基节点以将其添加到列表视图中,但是正在获取这些节点的所有信息,并将这些信息添加为项目。

这是我的 XML:

<?xml version="1.0" encoding="utf-8"?>
<Servers>
  <MYSERVER>
    <Host>xxx.xxx.xxx.xxx</Host>
    <User>MyUser</User>
    <Password>MyPassword</Password>
    <Port>25</Port>
  </MYSERVER>
</Servers>

我只想将"MYSERVER"添加到列表视图中,但正在添加所有信息(主机,用户,密码和端口)。

这就是我正在做的:

private void frmTransmissionManagement_Load(object sender, EventArgs e)
{
    XMLDoc.Load(XMLInterfaces);
    foreach (XmlNode node in XMLDoc.SelectSingleNode("Servers"))
    {                
         lvConnections.Items.Add(node.InnerText, 0);
    }
}

知道吗?

谢谢

如何在列表视图中仅将基节点添加为项目,以获取所有信息

我也喜欢XDocument。 不过,这段代码对我有用。 我相信这就是你想要的。

        foreach (XmlNode node in XMLDoc.ChildNodes)
        {
            if (node.Name == "Servers")
            {

                foreach (XmlNode serverNode in node)
                {
                    string s = serverNode.Name;
                    MessageBox.Show(s);
                }
            }


        }

使用 System.Xml.Linq 中的XDcoument,您可以使用如下所示的内容:

doc.Element("Servers").Elements().Select(x => x.Name);

这只返回字符串(实际上在这种情况下它是一个具有单个值的IEnumerable):"MYSERVER"。

我编写的一个快速示例程序演示了:

static void Main(string[] args)
{
    var doc = System.Xml.Linq.XDocument.Parse("<?xml version='"1.0'" encoding='"utf-8'"?> <Servers> <MYSERVER> <Host>xxx.xxx.xxx.xxx</Host> <User>MyUser</User> <Password>MyPassword</Password> <Port>25</Port> </MYSERVER> </Servers>");
    var servers = doc.Element("Servers").Elements().Select(x => x.Name);
    foreach(var s in servers)
    {
        Console.WriteLine(s);
    }
    Console.ReadLine();
}