首先在根目录下新建一个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相关推荐

  1. C#实用教程-操作xml文件

    C#实用教程-操作xml文件 C#实用教程-操作xml文件 引言:什么是xml文件 Xml的特征 Xml的格式 与HTML的区别 对Xml进行操作 读取xml文件: 当前xml文件内容如下: 创建xm ...

  2. 写了一个操作XML文件的类

    一个操作XML文件的类..部份功能在完善中~~~~ using System; using System.Collections.Generic; using System.Text; using S ...

  3. c#操作XML文件 1614260503

    c#操作XML文件 1614260503 导入命名空间 using System.Xml; 功能演示 // 实例化文件对象XmlDocument xd = new XmlDocument();// 对 ...

  4. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  5. JAVA操作xml文件

    参考:java操作xml方法,总有适合你的 XML技术在Java开发中的应用 1.简介 xml: extensible Markup Language 1.1使用场景: 不同的系统之间交互时使用xml ...

  6. Qt操作XML文件(创建,读,写,修改,添加,删除)

    XML文件在项目开发的过程中经常用的,比如配置文件基本上都是XML格式的,本文介绍在Qt环境下操作XML文件,具体用法看代码 原txt文件内容,在 http://www1.jctrans.com/to ...

  7. c++操作xml文件

    做软件的不会c++,都不好意思说自己是搞软件的.最近也开始慢慢学习c++的东西,今天就写写c++如何操作xml文件吧.我们使用的是tinyxml,有个小巧的库,可以生成和解析XML文档.免费开源,可以 ...

  8. 使用C#操作XML文件

    今天更新一篇技术文章,使用C#实现对XML的操作: 首先需要准备一个测试的XML文件,我这边命名为test.xml: 文件内容为: <test> <id>1</id> ...

  9. C#操作xml文件入门

    在项目中新建一个xml文件(PersonalResume.xml)如下: <?xml version="1.0" encoding="utf-8" ?&g ...

最新文章

  1. 如何学习iphone游戏开发
  2. 【转】Windows7 下安装 JDK 7 时版本冲突问题解决
  3. linux gstack pstack 进程运行堆栈查看工具
  4. matlab中antoine方程应用,五参数antoine方程
  5. leetcode算法题--两句话中的不常见单词
  6. 考oracle ocm,Oracle数据库OCM考试系列教程与总结_OCM考试实验笔记
  7. java基础集合类——LinkedList 源码略读
  8. Windows Intellij环境下Gradle的 “Could not determine Java version from ‘9.0.1’”的解决方式...
  9. mysql unsigned 溢出_mysql unsigned 用法及相减出现补数溢出解决方法 | 学步园
  10. 使用命令编译运行Java程序
  11. 微信项目直播开发(一)
  12. 【U盘量产工具】热插拔导致U盘进入写保护——安国主控AU6989SN-GT
  13. 会员运营五大难题与破解之道
  14. 【图解CAN总线】-2-详述CAN总线电平
  15. Xmy的Python----Numpy库
  16. 微软账户服务器连不上开不了机,Win10无法登录微软账户提示“内部服务器错误(500)”怎么解决?...
  17. 请客人(客户)吃饭谈点什么好?
  18. 5年测试经验对行业的认知
  19. 再来30个!中国联通5G应用创新案例
  20. volatile不能保证原子性,atomic不仅保证可见性还有原子性CAS分析

热门文章

  1. 中文和日文翻译的在线翻译网站
  2. printf函数 重定义printf函数。
  3. 市场调研分析:医疗养老将成为大健康产业核心
  4. JQuery printarea 打印空白问题解决
  5. ASP.NET 不错的机试题
  6. 金城医药并购遗痛与资本幻术
  7. 我不害怕孤独,只害怕没有好听的游戏背景音乐
  8. Spring boot实现Activemq死信队列
  9. dxdiag - 检测windows10设备的Bios版本,显卡,声卡信息_拔剑-浆糊的传说_新浪博客...
  10. 什么是工作流?如何利用工作流引擎实现业务流程