Asp.net 从字符串生成器创建xml文档将返回空文档
我正在尝试使用字符串生成器创建Am xml文档,如下所示。字符串生成器具有预期的精确值。但它不会写入xml文件。下面是代码Asp.net 从字符串生成器创建xml文档将返回空文档,asp.net,xml,vb.net,Asp.net,Xml,Vb.net,我正在尝试使用字符串生成器创建Am xml文档,如下所示。字符串生成器具有预期的精确值。但它不会写入xml文件。下面是代码 mssql = "select ID, ParentID, OrderID, Title, Start, End, PercentComplete, Expanded, Summary From Project" Dim buildXML As New StringBuilder buildXML.Append("<?xml versi
mssql = "select ID, ParentID, OrderID, Title, Start, End, PercentComplete, Expanded, Summary From Project"
Dim buildXML As New StringBuilder
buildXML.Append("<?xml version=""1.0"" encoding=""utf-8""?><Project> <Tasks>")
Dim mycommand As OdbcCommand
mycommand = New OdbcCommand(mssql, dbcon)
dbcon.Open()
Dim reader As OdbcDataReader
reader = mycommand.ExecuteReader
While reader.Read
buildXML.Append("<Task>" & _
"<ID>1</ID>" & _
"<ParentID />" & _
"<Start>" & reader.Item("Start") & "</Start>" & _
"<End>" & reader.Item("End") & "</End>" & _
"<Title>" & reader.Item("Title") & "</Title>" & _
"<PercentComplete>" & reader.Item("PercentComplete") & "</PercentComplete>" & _
"<Summary>" & reader.Item("Summary") & "</Summary>" & _
"<Expanded>" & reader.Item("Expanded") & "</Expanded>" & _
"<OrderID>" & reader.Item("OrderID") & "</OrderID>" & _
"</Task>")
End While
buildXML.Append("</Tasks> <Dependencies /></Project>")
reader.Close()
dbcon.Close()
'everything work fine up to this
Dim XMLDocument As System.Xml.XmlDocument = New System.Xml.XmlDocument()
XMLDocument.LoadXml(buildXML.ToString())
Dim Output As New XmlTextWriter(Server.MapPath("~/App_Data/gantt.xml"), System.Text.Encoding.UTF8)
XMLDocument.WriteTo(Output)
mssql=“从项目中选择ID、ParentID、OrderID、标题、开始、结束、完成百分比、展开、摘要”
Dim buildXML作为新的StringBuilder
buildXML.Append(“”)
将mycommand设置为odbc命令
mycommand=新的OdbcCommand(mssql、dbcon)
dbcon.Open()
作为OdbcDataReader的Dim读卡器
reader=mycommand.ExecuteReader
边读边读
Append(“&”_
"1" & _
"" & _
&reader.Item(“开始”)&_
&reader.Item(“结束”)&_
&reader.Item(“标题”)&_
&reader.Item(“完成百分比”)&&_
&reader.Item(“摘要”)&_
&reader.Item(“扩展”)&&_
&reader.Item(“OrderID”)&_
"")
结束时
buildXML.Append(“”)
reader.Close()
dbcon.Close()
“到目前为止,一切都很顺利
Dim XMLDocument As System.Xml.XMLDocument=New System.Xml.XMLDocument()
LoadXml(buildXML.ToString())
将输出设置为新的XmlTextWriter(Server.MapPath(“~/App\u Data/gantt.xml”)、System.Text.Encoding.UTF8)
XMLDocument.WriteTo(输出)
保存文档将导致空文档,有人知道原因吗?请按如下方式修改代码: 1) 从buildXML中删除Xml声明(Xml版本和编码)。只有你的节点信息应该在那里 2) 修改注释代码,如下所示(使用Save而不是WriteTo)
看起来您可能没有关闭XmlTextWriter。作为补充说明,我强烈建议不要使用字符串操作来创建XML。使用XmlWriter或XDocument。
Dim XMLDocument As System.Xml.XmlDocument = New System.Xml.XmlDocument()
XMLDocument.LoadXml(buildXML.ToString())
Dim Output As New XmlTextWriter(Server.MapPath("~/App_Data/gantt.xml"), System.Text.Encoding.UTF8)
XMLDocument.Save(Output)