Вывести XML в ASP.NET TextBox с форматированием с использованием XmlWriter? - PullRequest
1 голос
/ 28 февраля 2011

Я строю строку XML программно, используя XmlWriter ...

<code>sb = New StringBuilder()
writer = XmlWriter.Create(sb)

writer.WriteStartDocument()
writer.WriteStartElement("root")

writer.WriteStartElement("element1")
writer.WriteAttributeString("myattribute", "myvalue")
writer.WriteEndElement()

writer.WriteEndElement()
writer.WriteEndDocument()

writer.Flush()

myTextBox.text = "<pre>" & Return sb.ToString() & "
»

Я хочу иметь возможность выводить XML в элемент управления TextBox в веб-форме ASP.NET. Когда я вывожу XML, я не получаю никаких разрывов строк или отступов в XML. XmlWriter, похоже, не имеет каких-либо свойств для настройки форматирования. Есть ли способ сохранить форматирование и отступ? Спасибо.

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Используйте экземпляр класса XmlWriterSettings, чтобы указать использование отступов и разрывов строк, а затем передайте его в метод Create xmlWriter. Смотри документацию здесь .

0 голосов
/ 28 февраля 2011

попробуйте

  StringBuilder sb = new StringBuilder();
        StringWriter sw = new StringWriter();
        XmlTextWriter writer = new XmlTextWriter(sw);

        writer.Formatting = Formatting.Indented;


        // Write Xml Declaration with version 1.0 
        writer.WriteStartDocument();


        // Write Xml Document Root Element
        writer.WriteStartElement("Product");


        // Write attribute name and value to current Element 
        writer.WriteAttributeString("ProductID", "01");


        // Write Xml Element with Name and Inner Text
        writer.WriteElementString("ProductName", "P-Name");
        writer.WriteElementString("ProductQuantity","P-Quantity");
        writer.WriteElementString("ProductPrice", "P-Price");

        // Write Product Element closing Tag
        writer.WriteEndElement();

        // Write End of Document 
        writer.WriteEndDocument();

        // Flush and Close Writer
        writer.Flush();

        textBox1.Text = sw.ToString();
...