отображать содержимое xml в виде списка в winforms - PullRequest
0 голосов
/ 06 октября 2009

У меня есть 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>

Мне нужно отобразить 9.6 (9.6) сверху XML-файл в просмотр списка. Я запустил новое приложение windowform. я добавил listview с именем "_listview", поместил его представление как режим "detail". я добавил столбец там называется _version Можете ли вы дать мне код для отображения номера версии в столбце списка

Ответы [ 2 ]

1 голос
/ 06 октября 2009

если ваш 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);

Вы можете посмотреть здесь для получения более подробной информации.

0 голосов
/ 06 октября 2009

это тоже будет нормально работать

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...