C# 加载xml文件

自己整理一些常用XmlDocument加载xml文件的使用方法,当忘了的时候方便快速理解。 微笑



using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace WpfApplication1.com
{
    public class XMLLoader
    {
        private string _xmlUrl = "";

        public XMLLoader()
        {
            string xmlUrl = Directory.GetCurrentDirectory();
            xmlUrl += @"\assets\Demo.xml";

            _xmlUrl = xmlUrl;
        }

        public void Load()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(_xmlUrl);//直接通过路径加载,获取的全部文档内容(包括注释等等。。)

            XmlElement rootElement = xmlDoc.DocumentElement;//获取文档的根元素

            //XmlNodeList nodeList = rootElement.ChildNodes;//获取根元素下的节点列表
            //XmlNodeList nodeList = rootElement.GetElementsByTagName("persion");//通过元素名获取对应的元素列表
            //XmlNode node = nodeList[0];//节点列表的第一个节点

            //XmlNode node = rootElement["persion"];//通过元素名获取第一个匹配的节点
            //XmlAttributeCollection attributeCol = node.Attributes;//当前节点的属性列表
            //XmlAttribute xmlAttribute = attributeCol[0];//通过索引值获取第一个属性
            //XmlAttribute xmlAttribute = attributeCol[id];//通过属性名获取对应属性
        }

        public void Load2()
        {
            XmlDocument xmlDoc = new XmlDocument();
            //通过配置xml读取器加载
            XmlReaderSettings xmlSetting = new XmlReaderSettings();
            xmlSetting.IgnoreComments = true;//忽略注释  
            XmlReader xmlReader = XmlReader.Create(_xmlUrl, xmlSetting);
            
            xmlDoc.Load(xmlReader);//加载
            xmlReader.Close();//加载完后必须关闭,不然当保存时会提示该文档正在被使用中

            XmlElement rootElement = xmlDoc.DocumentElement;//获取文档的根元素
        }

        //创建新的xml文件
        public void CreateNewXML()
        {
            string xmlUrl = "assets/test.xml";

            XmlDocument xmlDoc = new XmlDocument();

            XmlDeclaration declaration = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);//创建xml声明
            XmlElement rootElement = xmlDoc.CreateElement("root");//创建根元素
            XmlComment xmlComment = xmlDoc.CreateComment("我是注释");//创建注释

            xmlDoc.AppendChild(declaration);//添加声明
            xmlDoc.AppendChild(xmlComment);//添加注释
            xmlDoc.AppendChild(rootElement);//添加根元素

            //保存
            //此xmlUrl如果是test.xml,则默认生成目录是当前应用程序的根目录
            //此xmlUrl如果是assets/test.xml,则默认生成目录是当前应用程序的根目录下的assets文件夹内,如果此文件夹不存在则会报错
            //保存时如果不存在此xml文件则生成xml文件,如果已存在此xml文件则覆盖此文件
            xmlDoc.Save(xmlUrl);
        }

        public void OnSave()
        {
            string xmlUrl = "test.xml";

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(xmlUrl);//直接通过路径加载,获取的全部文档内容(包括注释等等。。)

            XmlElement rootElement = xmlDoc.DocumentElement;
            //rootElement.RemoveAll();//删除全部子节点

            XmlElement newEle = xmlDoc.CreateElement("people");//创建新元素
            newEle.SetAttribute("name","张三");//新元素上添加属性

            rootElement.AppendChild(newEle);//在根节点下添加新元素

            xmlDoc.Save(_xmlUrl);//保存
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值