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

时间:2016-02-29 16:41:10

标签: c# .net xml nodes

我试图读取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>

我只想添加&#34; MYSERVER&#34;进入列表视图但添加了所有信息(主机,用户,密码和端口)。

这就是我正在做的事情:

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

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:2)

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

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


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

            }




        }

答案 1 :(得分:0)

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

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();
}