XML文档中只允许一个顶级元素

时间:2009-04-21 07:10:45

标签: xml vb.net

以下是在xml文件中插入新节点的代码。

Dim fleStream As New FileStream("C:\mailing.xml", FileMode.Append, FileAccess.Write,FileShare.ReadWrite)
Dim stmWriter As New StreamWriter(fleStream)
Dim writer As New XmlTextWriter(stmWriter)
Dim currNode As XmlNode
Dim doc As New XmlDocument

doc.LoadXml(("<XMLFile>" + " <EMail></EMail>" + "</XMLFile>"))
'doc.Load("C:\mailing.xml") '
Dim docFrag As XmlDocumentFragment = doc.CreateDocumentFragment()
docFrag.InnerXml = "<From><Address>" + txtFrom.Text + " </Address></From>"
currNode = doc.DocumentElement.FirstChild.AppendChild(docFrag)
currNode.InsertAfter(docFrag, currNode.LastChild)

docFrag.InnerXml = "<Receipient> <To>" + txtTo.Text + " </To></Receipient>"
currNode = doc.DocumentElement.FirstChild.FirstChild.AppendChild(docFrag)
currNode.InsertAfter(docFrag, currNode.LastChild)

docFrag.InnerXml = "<Subject>" + txtSubject.Text + "</Subject>"
currNode = doc.DocumentElement.FirstChild.AppendChild(docFrag)
currNode.InsertAfter(docFrag, currNode.LastChild)

docFrag.InnerXml = "<Body>" + txtBody.Text + "</Body>"
currNode = doc.DocumentElement.FirstChild.AppendChild(docFrag)
currNode.InsertAfter(docFrag, currNode.LastChild)

doc.Save(writer)
'doc.Save("C:\xmlmailfile.xml") '
writer.Flush()
stmWriter.Flush()
stmWriter.Close()

执行此操作我无法在IE中查看结果,因此出现错误消息 “无法显示XML页面

无法使用XSL样式表查看XML输入。

XML文档中只允许一个顶级元素。处理资源'file:/// C:/mailing.xml'时出错。第2行,Posi ...

asdasd@qwe.com

当我打开xml文件输入数据时,任何人都可以帮我解决pblm。我的代码中要做哪些修改?

2 个答案:

答案 0 :(得分:5)

嗯,这很正常。 XML文档必须具有不重复的根元素。您已经问过相关问题here,最初是here。 Jon Skeet已经非常简洁地向你解释了这一点。

如果理解存在问题,你应该考虑阅读XML或做一些研究,而不是反复提出同样的问题,因为大多数人都不会意识到你已经收到了很好的答案。

如果你继续做你已经做过的事情,你不应该期待不同的结果。

答案 1 :(得分:0)

在记事本中打开它,看看输出是什么,从那里看看错误到底是什么,如果你需要更多帮助,可以在这里发布。