当前位置: 代码网 > it编程>编程语言>C# > C#从XmlDocument提取完整字符串的方法

C#从XmlDocument提取完整字符串的方法

2025年02月13日 C# 我要评论
方法1:通过xmldocument的outerxml属性,见xmldocument类该方法获得的xml字符串是不带格式的,可读性差方法2:利用xmlwritersettings控制格式等一系列参数,见

方法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);
 }

到此这篇关于c#从xmldocument提取完整字符串的方法的文章就介绍到这了,更多相关c# xmldocument提取字符串内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com