Как использовать XmlWriter для написания не правильно сформированного XML

Во-первых, я не люблю это делать. Это не мой выбор.

Мне нужно записать информацию в документ XML. SimpleContent в xml может содержать & 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 ответ

Решение

Пожалуйста, делайте это только в случае крайней необходимости; это не соответствует стандартам 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>
Другие вопросы по тегам