我正在使用以下代码
创建XML文件Private Sub GetXML As XDocument
Dim XD As XDocument = <?xml version="1.0" encoding="UTF-8"><Customers></Customers>
For each c in mycustomers
XD.Root.Add(<Customer>.....</Customer>
Next
End Function
我正在尝试使用XD对象来显示在浏览器中生成的XML。所以我开始使用生成XML的Save方法来查看是否存在任何问题 - 文件看起来是正确的。所以我添加以下声明
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ContentType = "application/xml"
Literal1.Text = GetXML.ToString
Response.Flush()
Response.End()
这不会在浏览器中生成XML(创建文件时Save函数生成它的方式),所以进一步阅读会让我添加行
XD.Save(Response.write)
在浏览器窗口中显示XML,但没有显示导致我相信我仍然做错事的声明。然后我将此行更改为
Literal1.Text = "<?xml version=""1.0"" encoding=""utf-8"" ?>" & GetXML.ToString
这再次起作用。虽然我对Linq to XML的新功能似乎无法让这个按照我想要的方式工作吗?
修改
我刚试过
Dim wr As New StringWriter
....
XD.Save(wr)
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ContentType = "application/xml"
Response.Write(wr.GetStringBuilder.ToString)
再次显示XML但没有声明.....
答案 0 :(得分:0)
使用XDeclaration
在XML文档中包含声明。
Dim doc = New XDocument(New XDeclaration("1.0", "utf-16", "no"), New XElement("Customer", "..."))
Dim sw = New StringWriter()
doc.Save(sw)
Console.Write(sw.GetStringBuilder().ToString())