我正在使用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 class is removing formatting, 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>
答案 0 :(得分:13)
将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");
}
}
我刚刚尝试过,并保留了空白。
答案 1 :(得分:1)
嗯。我在使用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>
答案 2 :(得分:1)
在加载之前使用preservewhitespace。它将保持格式相同
like above
var xmlDoc = new XmlDocument();
xmlDoc.PreserveWhitespace = true;
xmlDoc.LoadXml(xmlStr);
如果您在加载后使用它。它会杀死之间的空白区域