2011-02-28 47 views
1

我建立一个XML字符串编程使用的XmlWriter ...使用XmlWriter格式化将XML输出到ASP.NET TextBox?

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() & "</pre>" 

我希望能够输出XML到一个ASP.NET Web窗体TextBox控件。当我输出XML时,我不会在XML中出现任何换行符或缩进。 XmlWriter似乎没有任何属性来设置格式。无论如何要保留格式和缩进?谢谢。

回答

3

使用XmlWriterSettings类实例指定缩进和换行符的用法,然后将其传递到xmlWriter的Create方法中。请参阅文档here

+0

感谢您的链接的文档。那里列举了一个好例子 – webworm 2011-03-01 15:43:56

0

试试这个

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(); 
+1

-1:不要使用'new XmlTextWriter()'。从.NET 2.0开始已经被弃用了。改为使用'XmlWriter.Create()'。 – 2011-02-28 20:23:32

+0

+1很好的例子。谢谢。 – webworm 2011-03-01 15:43:10