XmlTextWriter.WriteFullEndElement теги в той же строке - PullRequest
2 голосов
/ 19 марта 2010

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

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

<Tag>

</Tag>

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

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

1 Ответ

3 голосов
/ 06 июня 2011

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

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

        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(); 
        }

Приветствия

...