C ++ / CLI XMLSerialization Layout - PullRequest
       11

C ++ / CLI XMLSerialization Layout

3 голосов
/ 27 июля 2011

У меня проблема в C ++:

Я написал программу, которая генерирует файл XML с использованием XMLSerialization (XmlWriter, XmlReader).Теперь все сделано, кроме макета.В моем сгенерированном XML-файле отсутствуют вкладки и стандартная XML-разметка!Можно ли автоматически отформатировать этот текст с помощью функции C ++ ...?

XmlSerializer^ serializer = gcnew XmlSerializer( TESTClass::typeid );

// create an xmltextwriter using a filestream.
Stream^ fs = gcnew FileStream( filename,FileMode::Create );
XmlWriter^ writer = gcnew XmlTextWriter( fs,Encoding::Unicode );

// serialize using the xmltextwriter.
serializer->Serialize( writer, m_testobject );
writer->Close();

Моя цель будет:

<?xml version="1.0" encoding="utf-16"?>
<root Name="database" Purpose="test" Project="test">
    <!--Test Database-->
    <Description xmlns="x">primarytest</Description>
</root>

Код, который я получу:

<?xml version="1.0" encoding="utf-16"?><root Name="database" Purpose="test" Project="test"><!--Test Database--><Description xmlns="x">primarytest</Description></root>

1 Ответ

0 голосов
/ 28 июля 2011

В моем случае это был правильный код:

XmlWriterSettings ^settings = gcnew XmlWriterSettings();
settings->Indent = true;
settings->IndentChars = ("    ");
settings->NewLineOnAttributes = false;

writer = XmlWriter::Create( filename, settings );
...