C# 操作XML文件 XmlDocument和XElement
首先在根目录下新建一个config.xml:
<?xml version="1.0" encoding="utf-8"?>
<Config><Debug><Lan><Server Ip="142.12.10.123" Port="9601"/></Lan><Logger enable="false" /></Debug>
</Config>
XmlDocument位于System.Xml 下,是专门处理xml节点的
XElement位于System.Xml.Linq下,是可以对xml进行linq的查询操作的
分别使用XmlDocument和XElement获取节点的值:
using System;
using System.IO;
using System.Reflection;
using System.Xml;
using System.Xml.Linq;namespace FileXml
{class Program{static void Main(String[] args){//获取xml路径var current_dir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);var xml_path = Path.Combine(current_dir, @"config.xml");//使用XElement快速获取节点值XElement xmlElement = XElement.Load(xml_path);String IP = xmlElement.Element("Debug").Element("Lan").Element("Server").Attribute("Ip").Value.ToString();Console.WriteLine(IP);bool isLogger = xmlElement.Element("Debug").Element("Logger").Attribute("enable").Value == "true";Console.WriteLine(isLogger);//使用XElement快速获取节点值XmlDocument xml_doc = new XmlDocument();xml_doc.Load(xml_path);var IP2 = xml_doc.SelectSingleNode("/Config/Debug/Lan/Server").Attributes["Ip"].Value;var IP2_name = xml_doc.SelectSingleNode("/Config/Debug/Lan/Server").Attributes["Ip"].Name;Console.WriteLine(IP2_name+":"+ IP2);bool isLogger2 = xml_doc.SelectSingleNode("/Config/Debug/Logger").Attributes["enable"].Value == "true";Console.WriteLine(isLogger2);Console.ReadLine();}}
}
总结:如果是简单查询 总体上来说两者差不多
感觉还是XmlDocument.SelectSingleNode(XPath)更方便一些
普通用XmlDocument就够了
Xml单例管理类:
using System;
using System.IO;
using System.Reflection;
using System.Xml;namespace FileXml
{class Program{static void Main(){var ip = XmlManager.instance.XmlDoc.SelectSingleNode("/Config/Debug/Lan/Server").Attributes["Ip"].Value;var ip_name = XmlManager.instance.XmlDoc.SelectSingleNode("/Config/Debug/Lan/Server").Attributes["Ip"].Name;Console.WriteLine($"{ip_name} : {ip}");bool isLogger = XmlManager.instance.XmlDoc.SelectSingleNode("/Config/Debug/Logger").Attributes["enable"].Value == "true";Console.WriteLine(isLogger);Console.ReadLine();}}public class XmlManager{private static XmlManager _instance = null;public static XmlManager instance{get{if (_instance == null){return new XmlManager();}return _instance;}}private XmlDocument _xml_doc = null;public XmlDocument XmlDoc{get{if (_xml_doc == null){var current_dir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);var xml_path = Path.Combine(current_dir, @"config.xml");_xml_doc = new XmlDocument();_xml_doc.Load(xml_path);}return _xml_doc;}}}
}
C# 操作XML文件 XmlDocument和XElement相关推荐
- C#实用教程-操作xml文件
C#实用教程-操作xml文件 C#实用教程-操作xml文件 引言:什么是xml文件 Xml的特征 Xml的格式 与HTML的区别 对Xml进行操作 读取xml文件: 当前xml文件内容如下: 创建xm ...
- 写了一个操作XML文件的类
一个操作XML文件的类..部份功能在完善中~~~~ using System; using System.Collections.Generic; using System.Text; using S ...
- c#操作XML文件 1614260503
c#操作XML文件 1614260503 导入命名空间 using System.Xml; 功能演示 // 实例化文件对象XmlDocument xd = new XmlDocument();// 对 ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- JAVA操作xml文件
参考:java操作xml方法,总有适合你的 XML技术在Java开发中的应用 1.简介 xml: extensible Markup Language 1.1使用场景: 不同的系统之间交互时使用xml ...
- Qt操作XML文件(创建,读,写,修改,添加,删除)
XML文件在项目开发的过程中经常用的,比如配置文件基本上都是XML格式的,本文介绍在Qt环境下操作XML文件,具体用法看代码 原txt文件内容,在 http://www1.jctrans.com/to ...
- c++操作xml文件
做软件的不会c++,都不好意思说自己是搞软件的.最近也开始慢慢学习c++的东西,今天就写写c++如何操作xml文件吧.我们使用的是tinyxml,有个小巧的库,可以生成和解析XML文档.免费开源,可以 ...
- 使用C#操作XML文件
今天更新一篇技术文章,使用C#实现对XML的操作: 首先需要准备一个测试的XML文件,我这边命名为test.xml: 文件内容为: <test> <id>1</id> ...
- C#操作xml文件入门
在项目中新建一个xml文件(PersonalResume.xml)如下: <?xml version="1.0" encoding="utf-8" ?&g ...
最新文章
- 如何学习iphone游戏开发
- 【转】Windows7 下安装 JDK 7 时版本冲突问题解决
- linux gstack pstack 进程运行堆栈查看工具
- matlab中antoine方程应用,五参数antoine方程
- leetcode算法题--两句话中的不常见单词
- 考oracle ocm,Oracle数据库OCM考试系列教程与总结_OCM考试实验笔记
- java基础集合类——LinkedList 源码略读
- Windows Intellij环境下Gradle的 “Could not determine Java version from ‘9.0.1’”的解决方式...
- mysql unsigned 溢出_mysql unsigned 用法及相减出现补数溢出解决方法 | 学步园
- 使用命令编译运行Java程序
- 微信项目直播开发(一)
- 【U盘量产工具】热插拔导致U盘进入写保护——安国主控AU6989SN-GT
- 会员运营五大难题与破解之道
- 【图解CAN总线】-2-详述CAN总线电平
- Xmy的Python----Numpy库
- 微软账户服务器连不上开不了机,Win10无法登录微软账户提示“内部服务器错误(500)”怎么解决?...
- 请客人(客户)吃饭谈点什么好?
- 5年测试经验对行业的认知
- 再来30个!中国联通5G应用创新案例
- volatile不能保证原子性,atomic不仅保证可见性还有原子性CAS分析