Теги XmlTextWriter.WriteFullEndElement в одной строке

Я использую XMLTextWriter для динамического создания XML-документа (в VB.Net). Я хочу, чтобы пустые теги отображались так - <Tag></Tag>, а не так - <Tag />

Итак, я использую WriteFullEndElement для завершения тега элемента. Но он записывает тег как -

<Tag>

</Tag>

то есть с символом новой строки между тегами. Веб-служба, читающая этот XML, отклоняет его из-за символа новой строки.

Как избежать новой строки и разместить начальный и конечный теги в одной строке?


person Apeksha    schedule 19.03.2010    source источник
comment
Вы не должны напрямую использовать XmlTextWriter, если вы все еще не используете .NET 1.1. Вместо использования new XmlTextWriter() вы должны использовать XmlWriter.Create().   -  person John Saunders    schedule 19.03.2010
comment
Спасибо за предложение. Если я использую XmlWriter, как мне установить свойства .Formatting и .Namespaces, которые были доступны с XmlTextWriter?   -  person Apeksha    schedule 19.03.2010


Ответы (1)


Используйте 1_. В частности, используйте NewLineHandling и NewLineChars.

Ниже приведен простой пример написания XML-документа на С#:

        XmlWriterSettings writerSettings = new XmlWriterSettings();
        writerSettings.Indent = true;
        writerSettings.NewLineHandling = NewLineHandling.None;


        using (XmlWriter textWriter = XmlTextWriter.Create(this.fileName, writerSettings))
        {
            textWriter.WriteStartDocument();
            textWriter.WriteComment("generated file");
            textWriter.WriteStartElement("Root");
            // Populate data
            foreach (object o in someList)
            {
               textWriter.WriteStartElement(o);
               textWriter.WriteString(o);
               textWriter.WriteFullEndElement ();
            }

            textWriter.WriteFullEndElement ();
            textWriter.WriteEndDocument();
            textWriter.Close(); 
        }

Ваше здоровье

person Hertzel Guinness    schedule 06.06.2011