欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2025年02月06日 09:18:19   作者:Kelvin_Ngan  
文章介紹了兩種生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`屬性,但輸出的XML字符串不帶格式,可讀性差,方法二利用`XmlWriterSettings`控制格式,并通過`MemoryStream`作為輸出流,可以自定義編碼,如UTF-8,感興趣的朋友跟隨小編一起看看吧

方法1:通過XmlDocumentOuterXml屬性,見XmlDocument類
該方法獲得的xml字符串是不帶格式的,可讀性差

方法2:利用XmlWriterSettings控制格式等一系列參數(shù),見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 = "  ", // 設(shè)置縮進(jìn)字符和大小
    NewLineChars = "\r\n" // 設(shè)置換行符
};
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作為輸出流有一個(gè)弊端,它默認(rèn)按照UTF16編碼,無法更改,譬如上面的XmlWriterSettings指定了UTF8但實(shí)際得到的字符串仍然是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);
 }

到此這篇關(guān)于C#從XmlDocument提取完整字符串的方法的文章就介紹到這了,更多相關(guān)C# XmlDocument提取字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論