C#将特定标识设置设置为XmlWriterSettings

时间:2016-03-30 12:00:07

标签: c# xml xml-parsing

我正在编写一个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节点及其父节点在同一行中。

谢谢和问候

1 个答案:

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

由于