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