Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在winforms中将xml内容显示在列表视图中_C#_.net_Xml_Winforms - Fatal编程技术网

C# 在winforms中将xml内容显示在列表视图中

C# 在winforms中将xml内容显示在列表视图中,c#,.net,xml,winforms,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&g

我有一个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>

山姆
00000000-0000-0000-0000-000000000000   
00000000-0000-0000-0000-000000000008
00000000-0000-0000-0000-000000000000
rvi
9.6
我需要从上面的xml文件向listview显示9.6(9.6)。我启动了一个新的windowform应用程序。我添加了名为“\u listview”的listview,将其视图设置为“详细”模式 有一个命名的版本
您能给我在listview列中显示版本号的代码吗?如果您的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

如果要将“版本”添加为将显示在listview第一列中的项目:

        listView1.Items.Add(version);
如果要将“版本”添加到第二列中的现有项,请使用:

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

您可以查看更多详细信息。

这也可以

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

根据我在问题中提供的信息,你能给我完整的代码到listview吗?根据它的工作逻辑,这对我有好处,但是如何在listview中显示一些东西?\u listview.items.add那样我得到了很抱歉打扰你,,\u listview.items.add(版本);will givei又发了一个答案najmeddine,,你能检查一下吗?,它也会起作用