XmlWriter不在VB.net中创建新元素

Alb*_*elB 1 xml vb.net xmlwriter

我正在使用VB.net写出一个XML文件.当我尝试创建另一个要写入第一个元素的元素时,它会错误地说:

"令牌起始元素在状态EndRootElement会导致一个无效的XML文档中.确保ConformanceLevel设置为ConformanceLevel.Fragment或ConformanceLevel.Auto如果你想要写一个XML片段."

考虑到之前的元素已经关闭,我不确定为什么会这样做.我试图寻找一个writer.WriteEndRootElement,但我没有看到任何内容.任何建议让它工作?=)

    Private Sub writeXMLFile(ByVal childform As Fone_Builder_Delux.frmData, ByVal filename As String)

        Dim xmlSettings As New XmlWriterSettings()
        xmlSettings.Indent = True
        xmlSettings.NewLineOnAttributes = True

        Using writer As XmlWriter = XmlWriter.Create(filename, xmlSettings)

            writer.WriteStartDocument()
            writer.WriteStartElement("header")

            writer.WriteStartAttribute("filepath")
            writer.WriteValue(filename)
            writer.WriteEndAttribute()

            writer.WriteEndElement()
            writer.WriteStartElement("variable")
            writer.WriteStartAttribute("varName")

            writer.WriteValue(childform.datagridHeaders.Item(0, 1))

            writer.WriteEndAttribute()
            writer.WriteEndElement()
            writer.WriteEndDocument()
            writer.Flush()

        End Using


    End Sub
Run Code Online (Sandbox Code Playgroud)

ito*_*son 6

XML文档只能有一个根元素.您正在启动文档,编写"header"元素,关闭"header"元素,然后启动一个新的"variable"元素 - 这将是第二个根元素.

将"header"和"variable"括在一个更高级别的元素中,或者将其中一个移到另一个中.