我正在使用不导入缩写的空xml元素的遗留应用程序.例如:
坏空:
<foo />
Run Code Online (Sandbox Code Playgroud)
好空:
<foo></foo>
Run Code Online (Sandbox Code Playgroud)
我知道实现这一目标的解决方案,我现在将介绍:
public class XmlTextWriterFull : XmlTextWriter
{
public XmlTextWriterFull(Stream stream, Encoding enc) : base(stream, enc)
{
}
public XmlTextWriterFull(String str, Encoding enc) : base(str, enc)
{
}
public override void WriteEndElement()
{
base.WriteFullEndElement();
}
}
Run Code Online (Sandbox Code Playgroud)
和客户端代码:
var x_settings = new XmlWriterSettings();
x_settings.NewLineChars = Environment.NewLine;
x_settings.NewLineOnAttributes = true;
x_settings.NewLineHandling = NewLineHandling.Replace;
x_settings.CloseOutput = true;
x_settings.Indent = true;
x_settings.NewLineOnAttributes = true;
//var memOut = new MemoryStream();
var writer = new XmlTextWriterFull(outputFilename, Encoding.UTF8); //Or the encoding of …Run Code Online (Sandbox Code Playgroud)