C# 使用文件流时xml中的白线空格
C# 使用文件流时xml中的白线空格,c#,C#,我有一个XML,如下所示 <root> <node> <a1>text</a1> <a2>text</a2> <a3></a3> </node> </root> 我不希望使用preservewhitespace=true选项,因为它使我的xml看起来像这样 <root><node><
我有一个XML,如下所示
<root>
<node>
<a1>text</a1>
<a2>text</a2>
<a3></a3>
</node>
</root>
我不希望使用preservewhitespace=true选项,因为它使我的xml看起来像这样
<root><node><a1>text</a1><a2>text</a2><a3></a3></node></root>
textext
提前感谢 尝试使用实例
XmlWriterSettings
类显式指定XmlWriter
设置
XmlWriterSettings settings = new XmlWriterSettings
{
Encoding = Encoding.UTF8,
Indent = true,
NewLineChars = Environment.NewLine,
NewLineHandling = NewLineHandling.Replace,
OmitXmlDeclaration = false
};
using (XmlWriter writer = XmlWriter.Create(outXmlPath, settings))
{
xml.Save(writer);
}
希望这有帮助。您没有说问题出在哪里…?您是否以任何方式操纵a3?什么样的数据类型是xml?这个问题会有所帮助-到目前为止,所有3个版本的xml都是同等有效的。。。顺便说一句,如果您完全丢失了所有空格,那么您没有正确地使用preservewhitespace=true。问题是我在a3节点中得到了一个新行字符。我不会用a3操纵任何事情。我需要的解决方案是在a3节点中删除新行字符。我已经更新了前面提供的代码片段,以帮助大家更好地理解。如果发现任何问题,请告诉我。顺便说一下,此局部变量未使用:
FileStream docIn
。
<root><node><a1>text</a1><a2>text</a2><a3></a3></node></root>
XmlWriterSettings settings = new XmlWriterSettings
{
Encoding = Encoding.UTF8,
Indent = true,
NewLineChars = Environment.NewLine,
NewLineHandling = NewLineHandling.Replace,
OmitXmlDeclaration = false
};
using (XmlWriter writer = XmlWriter.Create(outXmlPath, settings))
{
xml.Save(writer);
}