读写XML文件的内容并将其显示在ListView控件上的方法

XML文件由内容和标记组成。通过标记包围内容的方式将大部门内容包含在元素中[1]。XML的节点便于程序配置进行灵活的扩展,特别是存在以数组格式的配置信息时,增加行或列只需要修改XML文件而无需修改源代码。

1. XML文件介绍

(1)声明

XML 文档的第一行可以是一个 XML 声明[1]这是文件的可选部分,它将文件识别为 XML 文件,有助于工具和人类识别 XML(不会误认为是 SGML 或其他标记)。可以将这个声明简单地写成 <?xml?>,或包含 XML 版本<?xml version="1.0"?>,甚至包含字符编码,比如针对 Unicode 的 <?xml version="1.0" encoding="utf-8"?>。

(2)根节点创建

根节点的开始和结束标记用于包围 XML 文档的内容。一个文件只能有一个根节点,并且需要使用 “包装器” 包含它[1]。

(3)子节点

字节点的开辟就没有数量限制了,而且子节点内也可以嵌套子节点。最小的节点就是被标记的内容。

<?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文件的内容并将其显示在ListView控件上

XML文件读取的逻辑是从根节点出发,根据标记找到标记数组,然后遍历标记数组,将对应值读取出来。为了让现实结果更加直观,就将结果显示在上一篇文章提到的ListView控件上。

(1)最开始的一步是导入命名空间。该命名空间内有XML类,通过该类方法能够实现XML文件的读取。

using System.Xml;

(2)加载xml文件

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

(3)获取根节点

XmlElement rootElem = doc.DocumentElement;

(4)获取节点数组

节点数组是以根节点为基础的,在根节点中根据标记将其内容打入数组。

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

(5)遍历节点数组并将值显示在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;  //获取根节点
      XmlNodeList ColumnpersonNodes = rootElem.GetElementsByTagName("colname"); //获取列节点数组
      foreach (XmlNode node in ColumnpersonNodes)
      {
        //将列数据写入到ListView中
        XmlNodeList subNodes = ((XmlElement)node).GetElementsByTagName("colvalue");
        foreach (XmlNode subNode in subNodes)
        {
          //将行数据写入到ListView中
          string strWidth = subNode.InnerText;
          int Width = Convert.ToInt32(strWidth);
          listView1.Columns.Add(strWidth, Width, HorizontalAlignment.Center);

        }
      }

      XmlNodeList RowpersonNodes = rootElem.GetElementsByTagName("rowvalue"); //获取行节点数组
      foreach (XmlNode node in RowpersonNodes)
      {
        ListViewItem lvi = new ListViewItem();//开辟行数据空间
        XmlNodeList subNodes = ((XmlElement)node).GetElementsByTagName("columnvalue");
        lvi.SubItems[0].Text = subNodes[0].InnerText;//将第一个值给行头

        int Count = subNodes.Count;
        for (int i = 1; i < Count; i++)//遍历第一个值之外的值
        {
          //将行数据写入到ListView中
          string str = subNodes[i].InnerText;
          lvi.SubItems.Add(str);
        }
        listView1.Items.Add(lvi);
      }
    }

3. 写入XML文件

XML文件的写入和读取的逻辑一样,从根节点出发,根据标记找到标记数组,然后遍历标记数组,修改对应的值,最后保存。

给Form1添加关闭事件,在该事件中实现XML的修改。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
      XmlDocument doc = new XmlDocument();
      doc.Load("UIConfig.xml");  //加载Xml文件
      //得到listview现有的列尺寸
      XmlElement rootElem = doc.DocumentElement;  //获取根节点
      XmlNodeList ColumnpersonNodes = rootElem.GetElementsByTagName("colvalue"); //获取person子节点集合
      for(int i = 0; i < this.listView1.Columns.Count; i++)
      {
         //将现有的列尺寸写入xml文件
        int colWidth = this.listView1.Columns[i].Width;//每一列的实际宽度
         //将列数据写入到ListView中
        ColumnpersonNodes[i].InnerText = colWidth.ToString();
        doc.Save("UIConfig.xml");
      }
    }

以上这篇读写XML文件的内容并将其显示在ListView控件上的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C#实现读取DataSet数据并显示在ListView控件中的方法

    本文实例讲述了C#实现读取DataSet数据并显示在ListView控件中的方法.分享给大家供大家参考.具体如下: /*lvStudentList为ListView控件名 */ DataSet ds = new DataSet(); ds = student.QueryStudents(); //查询表的信息 int rowCount, columnCount,i,j; rowCount = ds.Tables[0].Rows.Count; columnCount = ds.Tables[0].

  • 读写XML文件的内容并将其显示在ListView控件上的方法

    XML文件由内容和标记组成.通过标记包围内容的方式将大部门内容包含在元素中[1].XML的节点便于程序配置进行灵活的扩展,特别是存在以数组格式的配置信息时,增加行或列只需要修改XML文件而无需修改源代码. 1. XML文件介绍 (1)声明 XML 文档的第一行可以是一个 XML 声明[1]这是文件的可选部分,它将文件识别为 XML 文件,有助于工具和人类识别 XML(不会误认为是 SGML 或其他标记).可以将这个声明简单地写成 <?xml?>,或包含 XML 版本<?xml versi

  • PHP使用XMLWriter读写xml文件操作详解

    本文实例讲述了PHP使用XMLWriter读写xml文件操作.分享给大家供大家参考,具体如下: 米扑科技旗下的多个产品,需要脚本自动生成sitemap.xml,于是重新温习一遍PHP XML读写操作. 读写xml的方式,主要围绕XMLWriter和XMLReader进行,前者用于生成xml,后者则是用来读取并解析xml 写入 xml test_xml_write.php <?php /** * mimvp.com * 2017.06.22 */ header("Content-type:

  • C# 读写XML文件实例代码

    C#史上最简单读写xml文件方式,创建控制台应用程序赋值代码,就可以运行,需要改动,请自行调整 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace ConsoleApp1 { class Program { public cons

  • C#读写xml文件方法总结(超详细!)

    目录 C#写入xml文件 1.XmlDocument 2.DataSet对象里的值来生成XML文件 3.利用XmlSerializer来将类的属性值转换为XML文件的元素值. 示例:写入xml 1.创建xml文档 2 .增加节点 3 .修改节点: 4 .删除节点 c#读取xml文件 总结 C#写入xml文件 1.XmlDocument 1.我认为是最原始,最基本的一种:利用XmlDocument向一个XML文件里写节点,然后再利用XmlDocument保存文件.首先加载要写入的XML文件,但是如

  • C++、Qt分别读写xml文件的方法实例

    目录 XML语法 C++使用tinyxml读写xml Qt读写xml 总结 XML语法 第一行是XML文档声明,<>内的代表是元素,基本语法如以下所示.C++常见的是使用tiny库读写,Qt使用自带的库读写: <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <根元素> <元素 属性名="属性值" 属性名="属性

  • 详解 Python 读写XML文件的实例

    详解 Python 读写XML文件的实例 Python 生成XML文件 from xml.dom import minidom # 生成XML文件方式 def generateXml(): impl = minidom.getDOMImplementation() # 创建一个xml dom # 三个参数分别对应为 :namespaceURI, qualifiedName, doctype doc = impl.createDocument(None, None, None) # 创建根元素 r

  • 读写xml文件的2个小函数

    要利用DOM 来存取XML 文件,你必须将XML 文件连结到HTML 网页上. #region 读写xml文件的2个小函数,2005 4 2 by hyc  public void SetXmlFileValue(string xmlPath,string AppKey,string AppValue)//写xmlPath是文件路径+文件名,AppKey是 Key Name,AppValue是Value { XmlDocument xDoc = new XmlDocument(); xDoc.L

  • C#通过DataSet读写xml文件的方法

    本文实例讲述了C#通过DataSet读写xml文件的方法.分享给大家供大家参考.具体实现方法如下: DataSet ds = new DataSet(); //读取Xml文件 ds.ReadXml(Server.MapPath("xml/song.xml")); //生成Xml文件 ds.WriteXml(Server.MapPath("xml/song_bak.xml")); 希望本文所述对大家的C#程序设计有所帮助.

  • JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)

    本文实例讲述了JS读取XML文件数据并以table形式显示数据的方法.分享给大家供大家参考,具体如下: 先看xml文件: <?xml version="1.0" standalone="yes"?> <student> <stuinfo> <stuName>张秋丽</stuName> <stuSex>女 </stuSex> <stuAge>18</stuAge>

  • JavaScript判断FileUpload控件上传文件类型

    为了代码变得更加简捷,笔者使用了正则表达式来获取文件扩展名,如果读者对正则表达式不太了解或者从来没有接触过,请马上恶补一下吧!毕竟它非常重要,大多数的编程语言都支持正则表达式. 大家都知道,后台获取FileUpload扩展名方法: string ext = Path.GetExtension(fu.PostedFile.FileName); JS判断FileUpload控件上传文件的扩展名: <html xmlns="http://www.w3.org/1999/xhtml"&g

随机推荐