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 const String xmlPath = "info.xml";

    static void Main(string[] args)
    {

      IDictionary<String, List<String>> infos = new Dictionary<String, List<String>>();

      infos.Add("Evan", new List<string>() { "123", "456" });

      SaveXML(infos);

      ReadXML();
      Console.ReadKey();
    }

    public static void SaveXML(IDictionary<String, List<String>> infos)
    {
      if (infos == null || infos.Count == 0)
      {
        return;
      }

      XmlDocument xmlDoc = new XmlDocument();

      XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);

      xmlDoc.AppendChild(dec);

      XmlElement _infos = xmlDoc.CreateElement("infos");

      foreach (KeyValuePair<String, List<String>> item in infos)
      {
        XmlElement info = xmlDoc.CreateElement("info");

        XmlElement name = xmlDoc.CreateElement("file1");
        name.InnerText = item.Key;

        info.AppendChild(name);

        XmlNode filelist = xmlDoc.CreateElement("filelist");

        info.AppendChild(filelist);

        foreach (String number in item.Value)
        {
          XmlElement filed = xmlDoc.CreateElement("filed");
          filed.InnerText = number;

          filelist.AppendChild(filed);
        }

        _infos.AppendChild(info);
      }

      xmlDoc.AppendChild(_infos);

      xmlDoc.Save(xmlPath);
    }

    public static IDictionary<String, List<String>> ReadXML()
    {
      IDictionary<String, List<String>> infos = new Dictionary<String, List<String>>();

      if (File.Exists(xmlPath))
      {
        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.Load(xmlPath);

        XmlNode xn = xmlDoc.SelectSingleNode("infos");

        XmlNodeList xnl = xn.ChildNodes;

        foreach (XmlNode xnf in xnl)
        {
          XmlElement xe = (XmlElement)xnf;

          XmlNode nameNode = xe.SelectSingleNode("file1");

          string name = nameNode.InnerText;
          Console.WriteLine(name);
          XmlNode filelist = xe.SelectSingleNode("filelist");

          List<String> list = new List<string>();

          foreach (XmlNode item in filelist.ChildNodes)
          {
            list.Add(item.InnerText);
          }

          infos.Add(name, list);
        }
      }

      return infos;
    }
  }
}

内容扩展:

实例代码

dim domxmldocument as system.xml.xmldocument
  dim tmppath as string = apptempfilepath
  dim xmlfile as string = tmppath + "\testxml.xml"
 '窗体加载事件
  private sub testxml_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
  '读xml过程测试通过
  dim domxmldocument as system.xml.xmldocument
  dim tmppath as string = apptempfilepath
  dim xmlfile as string = tmppath + "\testxml.xml"
  dim reader as system.xml.xmlreader = nothing
  try
  reader = new xml.xmltextreader(xmlfile)
  'reader.
  while reader.read
  me.lboxxml.items.add(reader.name + reader.value)
  end while
  catch ex as exception
  msgbox(ex.message)
  finally
  if not (reader is nothing) then
  reader.close()
  end if
  end try
  end sub
  '载入xml事件
  private sub btnxmlload_click(byval sender as system.object, byval e as system.eventargs) handles btnxmlload.click
  'me.lboxxml.items.clear()
  ''读xml过程测试通过
  'dim reader as system.xml.xmlreader = nothing
  'try
  ' reader = new xml.xmltextreader(xmlfile)
  ' while reader.read
  ' me.lboxxml.items.add(reader.name + ":" + reader.value)
  ' end while
  'catch ex as exception
  ' msgbox(ex.message)
  'finally
  ' if not (reader is nothing) then
  ' reader.close()
  ' end if
  'end try
  dim ds as new dataset
  try
  '如果直接使用ds做datasource则不会展开datagrid,用dv则能直接显示正确。
  ds.readxml(xmlfile)
  dim tb as datatable
  dim dv as dataview
  tb = ds.tables(0)
  dv = new dataview(tb)
  datagrid1.datasource = dv
  'datagrid1.datamember = "testxmlmember"
  'datagrid1.datamember = "employeefname"
  'dim dxd as new xmldatadocument
  catch ex as exception
  msgbox(ex.message.tostring)
  end try
  end sub
  '保存新建xml内容事件
  private sub btnsavenew_click(byval sender as system.object, byval e as system.eventargs) handles btnsavenew.click
  dim mytw as new xmltextwriter(tmppath + "\testxmlwrite.xml", nothing)
  mytw.writestartdocument()
  mytw.formatting = formatting.indented
  mytw.writestartelement("team")
  mytw.writestartelement("player")
  mytw.writeattributestring("name", "george zip")
  mytw.writeattributestring("position", "qb")
  mytw.writeelementstring("nickname", "zippy")
  mytw.writeelementstring("jerseynumber", xmlconvert.tostring(7))
  mytw.writeendelement()
  mytw.writeendelement()
  mytw.writeenddocument()
  mytw.close()
  end sub

文件很大的情况下,可以考虑手动实现数据更新适配器,比如手动实现一个xml节点搜索/更新,这样就不用重写整个xml。
如果程序的i/o不是主要问题,还是用实体类整个的写入更新吧,毕竟数据的完整性是第一位的。
如是文章类的,对该目录建一个xml索引文件来存放文章的编号,url等,用xml的attribute作为标记不同字段,内容页面可以用另外的html或xml页面存放,用linq to xml操作数据,效率不是很差,个人观点。当搜索时候只要查询指定文件名xml或文件类型就可以了。

到此这篇关于C# 读写XML文件实例代码的文章就介绍到这了,更多相关C# 读写XML文件最简单方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C# 读写XML(代码分享)

    读XML XmlDocument xd = new XmlDocument(); string fileName = @"D:\test.xml"; xd.Load(fileName); XmlNodeList xmlNoteList = xd.GetElementsByTagName("user"); List<User> users = new List<User>(); foreach (XmlElement item in xmlNo

  • 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#程序设计有所帮助.

  • C#中XmlTextWriter读写xml文件详细介绍

    XmlTextWriter类允许你将XML写到一个文件中去.这个类包含了很多方法和属性,使用这些属性和方法可以使你更容易地处理XML.为了使用这个类,你必须首先创建一个新的XmlTextWriter对象,然后你可以将XML片断加入到这个对象中.这个类中包含了不少的方法用于将各种类型的XML元素添加到XML文件中,下表给出了这些方法的名字和描述情况: 方法 描述 WriteStartDocument 书写版本为"1.0"的 XML 声明 WriteEndDocument 关闭任何打开的元

  • 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

  • js读写json文件实例代码

    本节为大家介绍下js如何读写json文件,代码很简练 function funSave() { var id = $('#testText1')[0].value; var name = $('#testText2')[0].value; var str = '{mydata:[' + '{id:' + id + ',name:' + name + '}' + ']}'; str = "{MyData:[{id:'" + id + "',name:'" + name

  • python读写xml文件实例详解嘛

    目录 xml文件:country.xml xml文件解读 读取文件: 增加新节点及修改属性值和文本 总结 xml文件:country.xml <data> <country name="shdi2hajk">231 <rank>1<NewNode A="1">This is NEW</NewNode></rank> <year>2008</year> <gdppc&

  • python读写csv文件实例代码

    Python读取与写入CSV文件需要导入Python自带的CSV模块,然后通过CSV模块中的函数csv.reader()与csv.writer()来进行CSV文件的读取与写入. 写入CSV文件 import csv # 需要import csv的文件包 out=open("aa.csv",'wb') # 注意这里如果以'w'的形式打开,每次写入的数据中间就会多一个空行,所以要用'wb' csv_write=csv.write(out,dialect='excel') # 下面进行具体的

  • 详解 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

  • java使用RandomAccessFile类基于指针读写文件实例代码

    java API中提供了一个基于指针操作实现对文件随机访问操作的类,该类就是RandomAccessFile类,该类不同于其他很多基于流方式读写文件的类.它直接继承自Object. public class RandomAccessFile extends Objectimplements DataOutput, DataInput, Closeable{...} 1.使用该类时可以指定对要操作文件的读写模式. 第一种模式是只读模式,第二种模式是读写模式.在创建该类实例时指定. @Test pu

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

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

  • 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文件 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文件,但是如

随机推荐