《文件篇》读写xml文件

发布时间 2023-08-02 15:59:15作者: Fusio

读写xml文件

参考链接:https://www.cnblogs.com/fengxuehuanlin/p/5631664.html

关于xml是属于一个比较重要的东西,在平时开发的过程中,这块内容最主要的是要掌握XML内容的读取和写入操作。

什么是xml文件

XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义,您需要自行定义标签
XML 被设计为具有自我描述性
XML 是W3C 的推荐标准

xml语法

1.一个XML包含以下几部分内容:

文档声明,元素,属性,注释,CDATA(特殊字符),处理指令

2.最简单的声明格式

<?xml version="1.0" ?>
用encoding属性声明文档的编码
<?xml version="1.0" encoding="UTF-8" ?>
用standalone属性说明文档是否独立
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

XML文件的读取

XML文件内容

<?xml version="1.0" encoding="utf-8"?>
<library id="30">
  <BOOK id="20">
	<name>高等数学</name>
	<name1>大学英语</name1>
  </BOOK>
</library>

读取XML内容

static void Main(string[] args)
 {
	 //将XML文件加载进来
	 XDocument document = XDocument.Load("D:\\123.xml");
	 //获取到XML的根元素进行操作
	 XElement root= document.Root;
	 XElement ele= root.Element("BOOK");
	 //获取name标签的值
	 XElement shuxing= ele.Element("name");
	 Console.WriteLine(shuxing.Value);
	 //获取根元素下的所有子元素
	 IEnumerable<XElement> enumerable = root.Elements();
	 foreach (XElement item in enumerable)
	 {
		 foreach (XElement item1 in item.Elements())
		 {
			 Console.WriteLine(item1.Name);   //输出 name  name1
		 }
		 Console.WriteLine(item.Attribute("id").Value);  //输出20
	 }   
	 Console.ReadKey();
 }

写入xml

static void Main(string[] args)
{
	 //获取根节点对象
	 XDocument document = new XDocument();
	 XElement root = new XElement("School");
	 XElement book = new XElement("BOOK");
	 book.SetElementValue("name", "高等数学");
	 book.SetElementValue("name1", "大学英语");
	 root.Add(book);
	 root.Save("d:\\123.xml");
	 Console.ReadKey();
}

XDocument简介

参考链接:https://www.cnblogs.com/tangpeng97/p/13230515.html

XDocument,LINQ处理XML文件的一个类

引用

using System.Linq;
using System.Xml.Linq;
using System.Xml.XPath;

代码

加载xml文件

XDocument xml = XDocument.Load("IOS.xml");

根节点

XElement root = xml.Root;

xml查询

法一(Xpath查询【推荐方法】)

// 要记得引用 using System.Xml.XPath;
xml.Root.XPathSelectElement("//XCUIElementTypeApplication");

法二(LINQ 查询)

// 遍历Elements然后对比文本或其他属性
foreach (XElement item in xml.Elements())
{
   //xml中的属性都在里面
   c.Attributes()
}

XElement

// XDocument代表xml文档,Xelement则代表具体的某个元素节点
// 获取属性XElement.Attribute(属性名)

// 获取属性集合XElement.Attributes(属性名)