WPF读写文件

一、利用StreamReader 与 StreamWriter读写文件 

1.读文件

1 StreamReader sr = new StreamReader(@"D:\JointIn.txt");
2 string sLine = "";
3 while(!sr.EndOfStream)
4 {
5        sLine += sr.ReadLine();
6 }
7 Console.WriteLine(sLine); 
8 sr.Close(); 

2.写文件

1 StreamWriter sw = new StreamWriter(@"D:\JointOut.txt",true);//追加
2 sw.WriteLine("Hello World");
3 sw.Flush();
4 sw.Close();

二、读取XML节点

string XExamVideoConfigPath = @"D:\Test\VideoConfig.xml";
XmlDocument doc = new XmlDocument();
doc.Load(XExamVideoConfigPath);
string nodePath = "/Configuration/Node/Value[@index=1]";
var videoUrlNode = doc.SelectSingleNode(nodePath);
videoUrlNode.InnerText = "rtsp://admin:a12345678@172.24.14.64:554";
doc.Save(XExamVideoConfigPath);

 

var aiNode = doc
    .Descendants("Group")
    .FirstOrDefault(n =>
        string.Equals((string)n.Attribute("Package"), "DR_AI", StringComparison.OrdinalIgnoreCase) &&
        string.Equals((string)n.Attribute("Module"), "DR_AI", StringComparison.OrdinalIgnoreCase));
  • XElement.Descendants(XName name) 方法的作用是:以“深度优先”的顺序,递归地查找并返回当前 XML 元素(XElement)的所有下级元素(即“子孙”元素),并且只返回那些具有指定名称的元素。
  • XElement.Elements(XName name):只查找直接子级的元素。

三、对比 

image

1. XElement(XML 元素)

是什么:XML 文档的基本构建块,表示一个标签及其内容。

特点:

  • 有名称(标签名)

  • 可以有值(文本内容)

  • 可以包含其他节点(子元素、文本、注释等)

  • 可以拥有属性

<Book genre="编程">C# 入门</Book>
<!-- ↑ 这是一个 XElement,名称为 "Book" -->
XElement book = new XElement("Book", "C# 入门");
book.Add(new XAttribute("genre", "编程"));

// 访问元素值
string value = book.Value; // "C# 入门"

// 访问元素名称
XName name = book.Name; // "Book"

2. XNode(XML 节点)

是什么:XML 文档中各种类型节点的抽象基类。

包含的类型:

  • XElement - 元素节点

  • XText - 文本节点

  • XComment - 注释节点

  • XDocument - 文档节点

  • XProcessingInstruction - 处理指令

  • 等等

特点:

  • 抽象类,不能直接实例化

  • 定义了节点在 XML 树中的位置关系

  • 提供导航方法(如 NextNodePreviousNode

<Book><!-- 注释 -->C# 入门</Book>

  这里包含:

  • 1个 XElement 节点 (<Book>)

  • 1个 XComment 节点 (<!-- 注释 -->)

  • 1个 XText 节点 (C# 入门)

3. XAttribute(XML 属性)

是什么:附加在元素上的名值对,用于描述元素的额外信息。

特点:

  • 有名称和值

  • 不属于 XML 树结构的一部分

  • 没有子节点

  • 顺序通常不重要

<Book genre="编程" price="50.00">C# 入门</Book>
<!-- ↑ "genre" 和 "price" 是 XAttribute -->
XElement book = new XElement("Book", "C# 入门");
book.SetAttributeValue("genre", "编程"); // 添加属性

// 获取属性值
string genre = book.Attribute("genre")?.Value; // "编程"

 

posted @ 2022-09-09 15:17  LXLR  阅读(690)  评论(0)    收藏  举报