如何使用XmlWriter编写非格式良好的xml

时间:2014-06-30 21:05:00

标签: c# xml streamwriter xmlwriter

首先,我不喜欢这样做。这不是我的选择。

我需要将信息写入xml文档。 xml的simpleContent可能包含&&#;; s。我希望这些只是&而不是&

写入文件

我该怎么做?我猜它包含了一个StreamWriter,类似于:

 private void SaveCaption_Click(object sender, EventArgs e)
    {
        if (saveCaptionDialog.ShowDialog() == DialogResult.OK)
        {
            using (StreamWriter writer = new StreamWriter(saveCaptionDialog.FileName, null))
            {
                using (XmlWriter xmlWriter = XmlWriter.Create(writer))
                {
                    xmlWriter.Formatting = Formatting.Indented;
                    xmlWriter.Indentation = 4;
                    xmlWriter.WriteStartDocument();
                    xmlWriter.WriteStartElement("tt");
                    ...
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndDocument();
                }
            }
            //streamWriter do your thing
        }

    }

1 个答案:

答案 0 :(得分:4)

如果你绝对必须,请只做这件事;这不符合标准的XML。

只有您可以阻止XML触发。

使用WriteRaw()方法:

        XmlWriter writer;

        writer = XmlWriter.Create( @"C:\users\account\desktop\test.xml" );

        writer.WriteStartDocument();
        writer.WriteStartElement( "TestElement" );
        writer.WriteRaw( "Hello & goodbye" );
        writer.WriteEndElement();
        writer.WriteEndDocument();

        writer.Flush();
        writer.Close();

生成输出:

<?xml version="1.0" encoding="utf-8"?><TestElement>Hello & goodbye</TestElement>