簡體   English   中英

使用XmlDocument保留xml格式

[英]Preserve xml formatting using XmlDocument

我正在使用XmlDocument來處理xml

如何使用當前格式保存“XmlDocument”?

當前格式:

<?xml version="1.0" encoding="utf-8"?>
<root>

  <element></element>

</root>

碼:

                XmlDocument testDoc = new XmlDocument();
                testDoc.Load(@"C:\Test.xml");

                **(do reading/writing using only XmlDocument methods)**

                testDoc.Save(@"C:\Test.xml");

有一個類似的主題: XmlDocument類正在刪除格式,c#,.NET

接受的答案是PreserveWhiteSpace = true,實際上刪除了所有空格而不是保留它們。

例:

碼:

    XmlDocument testDoc = new XmlDocument();
    testDoc.Load(@"C:\Test.xml");
    testDoc.PreserveWhitespace = true;
    testDoc.Save(@"C:\Test.xml");

結果:

<?xml version="1.0" encoding="utf-8"?><root><element></element></root>

PreserveWhitespace設置為true對我有用 - 但是您必須在加載之前執行此操作以便在加載時不會丟棄空白:

using System;
using System.Xml;

class Test
{
    static void Main() 
    {
        XmlDocument testDoc = new XmlDocument();
        testDoc.PreserveWhitespace = true;
        testDoc.Load("Test.xml");
        testDoc.Save("Output.xml");
    }
}

我剛剛嘗試過,並保留了空白。

在加載之前使用preservewhitespace。 它將保持格式相同

like above
var xmlDoc = new XmlDocument();
xmlDoc.PreserveWhitespace = true;
xmlDoc.LoadXml(xmlStr);

如果您在加載后使用它。 它會殺死它們之間的空白區域

嗯。 使用PreserveWhiteSpace=true時,我看到保留了空格。 你裝的時候可能是false嗎?

var xmlStr = @"<?xml version=""1.0"" encoding=""utf-8""?>
<root>

  <element></element>

</root>";

var xmlDoc = new XmlDocument();
xmlDoc.PreserveWhitespace = true;
xmlDoc.LoadXml(xmlStr);
xmlDoc.Save(Console.Out);

顯示:

<?xml version="1.0" encoding="utf-16"?>
<root>

  <element></element>

</root> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM