欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

讀寫XML文件的內(nèi)容并將其顯示在ListView控件上的方法

 更新時(shí)間:2017年02月07日 11:43:01   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇讀寫XML文件的內(nèi)容并將其顯示在ListView控件上的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

XML文件由內(nèi)容和標(biāo)記組成。通過(guò)標(biāo)記包圍內(nèi)容的方式將大部門內(nèi)容包含在元素中[1]。XML的節(jié)點(diǎn)便于程序配置進(jìn)行靈活的擴(kuò)展,特別是存在以數(shù)組格式的配置信息時(shí),增加行或列只需要修改XML文件而無(wú)需修改源代碼。

1. XML文件介紹

(1)聲明

XML 文檔的第一行可以是一個(gè) XML 聲明[1]這是文件的可選部分,它將文件識(shí)別為 XML 文件,有助于工具和人類識(shí)別 XML(不會(huì)誤認(rèn)為是 SGML 或其他標(biāo)記)。可以將這個(gè)聲明簡(jiǎn)單地寫成 <?xml?>,或包含 XML 版本<?xml version="1.0"?>,甚至包含字符編碼,比如針對(duì) Unicode 的 <?xml version="1.0" encoding="utf-8"?>。

(2)根節(jié)點(diǎn)創(chuàng)建

根節(jié)點(diǎn)的開始和結(jié)束標(biāo)記用于包圍 XML 文檔的內(nèi)容。一個(gè)文件只能有一個(gè)根節(jié)點(diǎn),并且需要使用 “包裝器” 包含它[1]。

(3)子節(jié)點(diǎn)

字節(jié)點(diǎn)的開辟就沒(méi)有數(shù)量限制了,而且子節(jié)點(diǎn)內(nèi)也可以嵌套子節(jié)點(diǎn)。最小的節(jié)點(diǎn)就是被標(biāo)記的內(nèi)容。

<?xml version="1.0" encoding="utf-8"?>
<UIList>
  <column>
   <colname>
    <colvalue>55</colvalue>
   </colname>
<colname>
    <colvalue>85</colvalue>
   </colname>
  </column>
<row>
   <rowvalue>
    <columnvalue>1</columnvalue>
    <columnvalue>9</columnvalue>
    </rowvalue>
   <rowvalue>
    <columnvalue>2</columnvalue>
    <columnvalue>9</columnvalue>
   </rowvalue>
</row>
</UIList>

2. 讀取XML文件的內(nèi)容并將其顯示在ListView控件上

XML文件讀取的邏輯是從根節(jié)點(diǎn)出發(fā),根據(jù)標(biāo)記找到標(biāo)記數(shù)組,然后遍歷標(biāo)記數(shù)組,將對(duì)應(yīng)值讀取出來(lái)。為了讓現(xiàn)實(shí)結(jié)果更加直觀,就將結(jié)果顯示在上一篇文章提到的ListView控件上。

(1)最開始的一步是導(dǎo)入命名空間。該命名空間內(nèi)有XML類,通過(guò)該類方法能夠?qū)崿F(xiàn)XML文件的讀取。

using System.Xml;

(2)加載xml文件

XmlDocument doc = new XmlDocument();
doc.Load("UIConfig.xml");    //加載Xml文件

(3)獲取根節(jié)點(diǎn)

XmlElement rootElem = doc.DocumentElement;

(4)獲取節(jié)點(diǎn)數(shù)組

節(jié)點(diǎn)數(shù)組是以根節(jié)點(diǎn)為基礎(chǔ)的,在根節(jié)點(diǎn)中根據(jù)標(biāo)記將其內(nèi)容打入數(shù)組。

XmlNodeList ColumnpersonNodes = rootElem.GetElementsByTagName("colname");

(5)遍歷節(jié)點(diǎn)數(shù)組并將值顯示在ListView上

private void Form1_Load(object sender, EventArgs e)
    {

      //ListView
      listView1.View = View.Details;
      //XML
      //加載xml文件
      XmlDocument doc = new XmlDocument();
      doc.Load("UIConfig.xml");  //加載Xml文件 
      XmlElement rootElem = doc.DocumentElement;  //獲取根節(jié)點(diǎn)
      XmlNodeList ColumnpersonNodes = rootElem.GetElementsByTagName("colname"); //獲取列節(jié)點(diǎn)數(shù)組
      foreach (XmlNode node in ColumnpersonNodes)
      {
        //將列數(shù)據(jù)寫入到ListView中
        XmlNodeList subNodes = ((XmlElement)node).GetElementsByTagName("colvalue"); 
        foreach (XmlNode subNode in subNodes)
        {
          //將行數(shù)據(jù)寫入到ListView中
          string strWidth = subNode.InnerText;
          int Width = Convert.ToInt32(strWidth);
          listView1.Columns.Add(strWidth, Width, HorizontalAlignment.Center);

        }
      }

      XmlNodeList RowpersonNodes = rootElem.GetElementsByTagName("rowvalue"); //獲取行節(jié)點(diǎn)數(shù)組 
      foreach (XmlNode node in RowpersonNodes)
      {
        ListViewItem lvi = new ListViewItem();//開辟行數(shù)據(jù)空間
        XmlNodeList subNodes = ((XmlElement)node).GetElementsByTagName("columnvalue"); 
        lvi.SubItems[0].Text = subNodes[0].InnerText;//將第一個(gè)值給行頭

        int Count = subNodes.Count;
        for (int i = 1; i < Count; i++)//遍歷第一個(gè)值之外的值
        {
          //將行數(shù)據(jù)寫入到ListView中
          string str = subNodes[i].InnerText;
          lvi.SubItems.Add(str);
        }
        listView1.Items.Add(lvi);
      }
    }

3. 寫入XML文件

XML文件的寫入和讀取的邏輯一樣,從根節(jié)點(diǎn)出發(fā),根據(jù)標(biāo)記找到標(biāo)記數(shù)組,然后遍歷標(biāo)記數(shù)組,修改對(duì)應(yīng)的值,最后保存。

給Form1添加關(guān)閉事件,在該事件中實(shí)現(xiàn)XML的修改。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
      XmlDocument doc = new XmlDocument();
      doc.Load("UIConfig.xml");  //加載Xml文件 
      //得到listview現(xiàn)有的列尺寸
      XmlElement rootElem = doc.DocumentElement;  //獲取根節(jié)點(diǎn)
      XmlNodeList ColumnpersonNodes = rootElem.GetElementsByTagName("colvalue"); //獲取person子節(jié)點(diǎn)集合 
      for(int i = 0; i < this.listView1.Columns.Count; i++)
      {
         //將現(xiàn)有的列尺寸寫入xml文件
        int colWidth = this.listView1.Columns[i].Width;//每一列的實(shí)際寬度
         //將列數(shù)據(jù)寫入到ListView中
        ColumnpersonNodes[i].InnerText = colWidth.ToString();
        doc.Save("UIConfig.xml"); 
      }    
    }


以上這篇讀寫XML文件的內(nèi)容并將其顯示在ListView控件上的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#中 城市線路圖的純算法以及附帶求極權(quán)值

    C#中 城市線路圖的純算法以及附帶求極權(quán)值

    本篇文章介紹了,在C#中城市線路圖的純算法以及附帶求極權(quán)值的方法,需要的朋友參考下
    2013-04-04
  • C# 判斷文件路徑的后綴

    C# 判斷文件路徑的后綴

    本文主要介紹了C# 判斷文件路徑的后綴,,通過(guò)解析文件名并檢查其擴(kuò)展名來(lái)判斷文件的后綴是否為.dcm,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • 如何在C#中使用指針

    如何在C#中使用指針

    這篇文章主要介紹了如何在C#中使用指針,文中代碼簡(jiǎn)單易懂,幫助大家更好的工作和學(xué)習(xí),感興趣的朋友快來(lái)了解下
    2020-06-06
  • C#實(shí)現(xiàn)自動(dòng)識(shí)別URL網(wǎng)址的方法

    C#實(shí)現(xiàn)自動(dòng)識(shí)別URL網(wǎng)址的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)自動(dòng)識(shí)別URL網(wǎng)址的方法,涉及C#操作URL地址的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 通過(guò)App.xaml理解wpf中的Application類

    通過(guò)App.xaml理解wpf中的Application類

    這篇文章主要介紹了通過(guò)App.xaml理解wpf中的Application類,幫助大家更好的理解和學(xué)習(xí)使用c# wpf,感興趣的朋友可以了解下
    2021-04-04
  • C#實(shí)現(xiàn)屏幕拷貝的方法

    C#實(shí)現(xiàn)屏幕拷貝的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)屏幕拷貝的方法,實(shí)例分析了兩種常用的屏幕拷貝實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • C#調(diào)用WinRar執(zhí)行rar、zip壓縮的方法

    C#調(diào)用WinRar執(zhí)行rar、zip壓縮的方法

    這篇文章主要介紹了C#調(diào)用WinRar執(zhí)行rar、zip壓縮的方法,涉及C#針對(duì)winrar的判斷與調(diào)用技巧,需要的朋友可以參考下
    2015-05-05
  • c# 接口interface基礎(chǔ)入門小例子

    c# 接口interface基礎(chǔ)入門小例子

    用于描述類的功能,類似于契約,指示了類將:執(zhí)行的工作,形參類型,返回結(jié)果類型,但本身沒(méi)有執(zhí)行的代碼
    2013-04-04
  • C#算法之實(shí)現(xiàn)阿姆斯特朗數(shù)

    C#算法之實(shí)現(xiàn)阿姆斯特朗數(shù)

    這篇文章介紹了C#實(shí)現(xiàn)阿姆斯特朗數(shù)的算法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • C#實(shí)現(xiàn)較為實(shí)用的SQLhelper

    C#實(shí)現(xiàn)較為實(shí)用的SQLhelper

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)較為實(shí)用SQLhelper的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評(píng)論