0
我正在尝试写入xml然后读取它。我可以写成功,但是当我尝试读它,我得到以下错误:vb.net尝试写入和读取xml
型“System.Xml.XmlException”未处理的异常发生在system.xml.dll的
附加信息:数据在根级别无效。 1号线,位置1
这里是xml文件
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Settings>
<Variables>
<var_name>varsender</var_name>
<value>[email protected]</value>
</Variables>
</Settings>
这里是我的代码:
Imports System.Xml
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim writer As New XmlTextWriter(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) & "\Scripts\Test\testxml.xml", System.Text.Encoding.UTF8)
createNode("varsender", "[email protected]", writer)
End Sub
Private Sub createNode(ByVal varname As String, ByVal varvalue As String, ByVal writer As XmlTextWriter)
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = True
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = False
writer.WriteStartDocument(True)
writer.Formatting = Formatting.Indented
writer.Indentation = 2
writer.WriteStartElement("Settings") 'name of first element
writer.WriteStartElement("Variables")
writer.WriteStartElement("var_name")
writer.WriteString(varname)
writer.WriteEndElement()
writer.WriteStartElement("value")
writer.WriteString(varvalue)
writer.WriteEndElement()
writer.WriteEndElement()
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim doc As XmlDocument = New XmlDocument()
doc.LoadXml(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) & "\Scripts\Test\testxml.xml")
Dim variable As String = doc.SelectSingleNode("/Settings/Variables[var_name='" & TextBox1.Text & "']/value") _
.InnerText
TextBox2.Text = variable
End Sub
End Class
xml文件并不一定是什么特别的,我只是要用它来关闭变量并在变量上打开。
http://stackoverflow.com/questions/7544475/data-at-the-root-level-is-invalid-line-1-position -1-why-do-i-get-this-error -w你需要使用'Load',而不是'LoadXml' –