【问题标题】:display xml contents in to a listview in winforms在winforms中将xml内容显示到列表视图中
【发布时间】:2009-10-06 14:39:53
【问题描述】:

我有一个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 文件显示 9.6 (9.6) 到 listview。我启动了一个新的 windowform 应用程序。我添加了名为“_listview”的列表视图,将其视图作为“详细”模式。我添加了一个列 有名为 _version 你能给我在listview列中显示版本号的代码吗

【问题讨论】:

    标签: c# .net xml winforms


    【解决方案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了解更多详情。

    【讨论】:

    • 您能否根据我在问题中提供的信息将完整的代码提供给 listview,这对我有好处,就像初学者一样
    • 按照逻辑它会起作用,但是如何在listview中显示一些_listview.items.add这样的东西
    • 很抱歉打扰你,,_listview.Items.Add(version);会给
    • 我又发布了一个答案 najmeddine,你能检查一下吗,它也会起作用
    【解决方案2】:

    这也可以正常工作

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2012-12-03
      相关资源
      最近更新 更多