C#从XmlDocument提取完整字符串

devtools/2025/2/2 7:15:41/

方法1:通过XmlDocumentOuterXml属性,见XmlDocument类
该方法获得的xml字符串是不带格式的,可读性差

方法2:利用XmlWriterSettings控制格式等一系列参数,见XmlWriterSettings类
例子:

using System.IO;
using System.Text;
using System.Xml;
...
XmlDocument doc = new XmlDocument();
doc.LoadXml("<item><name>wrench</name></item>");
// 使用XmlWriterSettings来控制格式化输出
XmlWriterSettings settings = new XmlWriterSettings
{Encoding = Encoding.UTF8,Indent = true,IndentChars = "  ", // 设置缩进字符和大小NewLineChars = "\r\n" // 设置换行符
};
using (StringWriter textWriter = new StringWriter())
{using (XmlWriter xmlWriter = XmlWriter.Create(textWriter, settings)){doc.Save(xmlWriter); // 将XML写入StringWriter}string xmlString = textWriter.ToString(); // 获取字符串Console.WriteLine(xmlString);
}

通过StringWriter作为输出流有一个弊端,它默认按照UTF16编码,无法更改,譬如上面的XmlWriterSettings指定了UTF8但实际得到的字符串仍然是UTF16的
改用MemoryStream作为流可以自定义编码,如下:

using (MemoryStream ms = new MemoryStream())  
{using (XmlWriter xmlWriter = XmlWriter.Create(ms, settings)){doc.Save(xmlWriter); // 将XML写入MemoryStream}string xmlString = Encoding.UTF8.GetString(ms.ToArray());  // 获取字符串Console.WriteLine(xmlString);}

http://www.ppmy.cn/devtools/155377.html

相关文章

【SSM】Spring + SpringMVC + Mybatis

SSM课程&#xff0c;以下为该课程的笔记 bean&#xff1a;IOC容器创建的对象 P12 bean的生命周期 在bean中定义init()和destroy()方法&#xff0c;然后在xml中配置方法名&#xff0c;让bean对象能找到对应的生命周期方法。 或通过实现接口的方式定义声明周期方法。 P13 sett…

深入MapReduce——从MRv1到Yarn

引入 我们前面篇章有提到&#xff0c;和MapReduce的论文不太一样。在Hadoop1.0实现里&#xff0c;每一个MapReduce的任务并没有一个独立的master进程&#xff0c;而是直接让调度系统承担了所有的worker 的master 的角色&#xff0c;这就是Hadoop1.0里的 JobTracker。在Hadoop1…

图漾相机——C++语言属性设置

文章目录 前言1.SDK API功能介绍1.1 Device组件下的API测试1.1.1 相机工作模式设置&#xff08;TY_TRIGGER_PARAM_EX&#xff09;1.1.2 TY_INT_FRAME_PER_TRIGGER1.1.3 TY_INT_PACKET_DELAY1.1.4 TY_INT_PACKET_SIZE1.1.5 TY_BOOL_GVSP_RESEND1.1.6 TY_BOOL_TRIGGER_OUT_IO1.1.…

Java小白入门教程:HashMap

目录 一、定义 二、作用 1、存储键值对 2、快速查找 3、动态扩容 三、使用场景 1、当你需要根据键快速查找值时 2、当你不需要保持元素的顺序时(HashMap不保证元素的顺顺序)。 3、当你需要存储大量的键值对&#xff0c;并且频繁地进行插入和删除操作时。 四、语法及示…

基于Scrapy采集豆瓣电影Top250的详细数据

基于Scrapy采集豆瓣电影Top250的详细数据 Scrapy 官方文档:https://docs.scrapy.org/en/latest/豆瓣电影Top250官网:https://movie.douban.com/top250写在前面 实验目的:基于Scrapy框架采集豆瓣电影Top250的详细数据。 电脑系统:Windows 使用软件:PyCharm、Navicat Python…

【4. C++ 变量类型详解与创新解读】

本章目录: 前言什么是变量&#xff1f;C 基本变量类型1. 基本类型2. 扩展类型 自动类型转换与强制类型转换自动类型转换强制类型转换 声明与定义声明定义 左值与右值结语 前言 在C中&#xff0c;变量是程序存储数据的基本单元。变量的定义和使用涉及多种类型和规则&#xff0c…

深度学习编译器的演进:从计算图到跨硬件部署的自动化之路

第一章 问题的诞生——深度学习部署的硬件困境 1.1 计算图的理想化抽象 什么是计算图&#xff1f; 想象你正在组装乐高积木。每个积木块代表一个数学运算&#xff08;如加法、乘法&#xff09;&#xff0c;积木之间的连接代表数据流动。深度学习框架正是用这种"积木拼接…

深入剖析 HTML5 新特性:语义化标签和表单控件完全指南

系列文章目录 01-从零开始学 HTML&#xff1a;构建网页的基本框架与技巧 02-HTML常见文本标签解析&#xff1a;从基础到进阶的全面指南 03-HTML从入门到精通&#xff1a;链接与图像标签全解析 04-HTML 列表标签全解析&#xff1a;无序与有序列表的深度应用 05-HTML表格标签全面…