我正在编写一个C#easy工具来对给定的XML文件执行一些属性更改。 所有用于执行更改的编码都按预期工作,但是当保存文件时,我遇到以下问题: 源XML文件具有特定的标识,例如:
<AAL2Bearer id="0" method="create">
<attributes>
<pathId>16</pathId>
<vccId>VCC/2</vccId></attributes></AAL2Bearer>
<AAL2Bearer id="1" method="create">
<attributes>
<pathId>8</pathId>
<vccId>VCC/3</vccId></attributes></AAL2Bearer>
<AAL2Bearer id="2" method="create">
<attributes>
<pathId>1</pathId>
<vccId>VCC/5</vccId></attributes></AAL2Bearer>
保存后我的XML文件:
<AAL2Bearer id="0" method="create">
<attributes>
<pathId>16</pathId>
<vccId>VCC/2</vccId>
</attributes>
</AAL2Bearer>
<AAL2Bearer id="1" method="create">
<attributes>
<pathId>8</pathId>
<vccId>VCC/3</vccId>
</attributes>
</AAL2Bearer>
<AAL2Bearer id="2" method="create">
<attributes>
<pathId>1</pathId>
<vccId>VCC/5</vccId>
</attributes>
</AAL2Bearer>
我试过了:
var settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "";
使用这个代码片段,我能够在每行的开头都有一个没有ident的XML文件,这就是我需要的,但是我还需要在同一行中关闭xml节点,基本上只需要在new上添加新行xml节点但始终“关闭”XML节点及其父节点在同一行中。
谢谢和问候
答案 0 :(得分:1)
对不起,问题是Alex K.是对的!
由于BOM,文件被标记为无效。 :(
简单地解决:
var settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "";
var outputEnc = new UTF8Encoding(false);
settings.Encoding = outputEnc;
using (var writer = XmlWriter.Create(targetXWO.FileName, settings))
{
doc.Save(writer);
}
由于