将xml内容显示在winforms的listview中

时间:2009-10-06 14:39:54

标签: c# .net xml winforms

我有一个xml文件sample.xml

<?xml version="1.0" standalone="yes"?>
<DataSchema xmlns="http://tempuri.org/DataSchema.xsd">
  <ManagedObject>
    <Label>sam</Label>
    <Owner>00000000-0000-0000-0000-000000000000</Owner>   
    <ClassID>00000000-0000-0000-0000-000000000008</ClassID>
    <DefaultApp>00000000-0000-0000-0000-000000000000</DefaultApp>
    <Name>rvi</Name>
    <version>9.6</version>
  </ManagedObject>
</DataSchema>

我需要从上面的xml文件到listview显示9.6(9.6)。我启动了一个新的windowform应用程序。我添加名为“_listview”的listview将其视图作为“详细”模式。我添加了一列 那里有_version 你能给我一些代码来在listview专栏中显示版本号吗

2 个答案:

答案 0 :(得分:1)

如果你的XML文件总是有这个结构,你可以简单地使用:

        string version = "";
        int n = 0;

        using (DataSet ds = new DataSet())
        {
            ds.ReadXml(@"sample.xml");
            if(ds.Tables.Contains("ManagedObject") 
               && ds.Tables["ManagedObject"].Rows.Count > n)
            {
                ver = ds.Tables["ManagedObject"].Rows[n]["version"].ToString();
            }
        }

获取第n个ManagedObject版本。

在您的情况下,您只有1,所以n = 0

如果您想将“版本”添加为将出现在列表视图的第一列中的项目:

        listView1.Items.Add(version);

如果要将“版本”添加到辅助列中的现有项目,请使用:

        listview1.Items[n].SubItems.Add(version);

您可以查看here了解更多详情。

答案 1 :(得分:0)

这也可以正常使用

XmlDocument doc = new XmlDocument();
        doc.Load(@"F:\xml\sample.xml");
        XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
        nsmgr.AddNamespace("sam", "http://tempuri.org/DataSchema.xsd");
        XmlNode node = doc.SelectSingleNode(
            "/sam:DataSchema/sam:ManagedObject/sam:version", nsmgr);
        string version = node == null ? null : node.InnerText;

        _listview.Items.Add(version);