在VB.NET中将字符串转换为XML

在VB.NET中将字符串转换为XML,xml,vb.net,Xml,Vb.net,我只是试图在VB.net中将字符串转换为xml文件。我得到的是一个xmlException“根级别的数据无效。”。第1行,位置1' 我错过什么了吗 我期待的输出为 Dim filter As String filter = 'Bal_ln_id = 110 and Bal_ln_id = 100' Dim xmldoc As New System.Xml.XmlDocument xmldoc.LoadXml(filter) 110 100 ' 要使用XmlTextWriter类执行

我只是试图在VB.net中将字符串转换为xml文件。我得到的是一个xmlException
“根级别的数据无效。”。第1行,位置1'

我错过什么了吗

我期待的输出为

Dim filter As String
filter = 'Bal_ln_id = 110 and Bal_ln_id = 100'     
Dim xmldoc As New System.Xml.XmlDocument
xmldoc.LoadXml(filter)

110
100
'

要使用
XmlTextWriter
类执行此操作,可以执行以下操作:

<DocumentElement>
  <DATA_TABLE>
    <BAL_LN_ID>110</BAL_LN_ID>
  </DATA_TABLE>
  <DATA_TABLE>
     <BAL_LN_ID>100</BAL_LN_ID>
  </DATA_TABLE>
</DocumentElement>'
Private Function GenerateXml(ByVal ids As List(Of String)) As String
    Dim stringWriter As New StringWriter()
    Dim xmlWriter As New XmlTextWriter(stringWriter)
    xmlWriter.WriteStartDocument()
    xmlWriter.WriteStartElement("DocumentElement")
    For Each id As String In ids
        xmlWriter.WriteStartElement("DATA_TABLE")
        xmlWriter.WriteStartElement("BAL_LN_ID")
        xmlWriter.WriteString(id)
        xmlWriter.WriteEndElement()
        xmlWriter.WriteEndElement()
    Next
    xmlWriter.WriteEndElement()
    xmlWriter.WriteEndDocument()
    Return stringWriter.ToString()
End Function
然后你可以这样使用它:

<DocumentElement>
  <DATA_TABLE>
    <BAL_LN_ID>110</BAL_LN_ID>
  </DATA_TABLE>
  <DATA_TABLE>
     <BAL_LN_ID>100</BAL_LN_ID>
  </DATA_TABLE>
</DocumentElement>'
Private Function GenerateXml(ByVal ids As List(Of String)) As String
    Dim stringWriter As New StringWriter()
    Dim xmlWriter As New XmlTextWriter(stringWriter)
    xmlWriter.WriteStartDocument()
    xmlWriter.WriteStartElement("DocumentElement")
    For Each id As String In ids
        xmlWriter.WriteStartElement("DATA_TABLE")
        xmlWriter.WriteStartElement("BAL_LN_ID")
        xmlWriter.WriteString(id)
        xmlWriter.WriteEndElement()
        xmlWriter.WriteEndElement()
    Next
    xmlWriter.WriteEndElement()
    xmlWriter.WriteEndDocument()
    Return stringWriter.ToString()
End Function

是的,这个字符串肯定不是xml。您希望输出是什么样子的?我希望将其作为参数传递给存储的进程,因此我希望将其转换为XML。类似于110 100'的东西好吧,要创建xml,请查看xmlTextWriter类。没有一种方法可以自动从像您这样的字符串创建xml,您必须构建它VB或xml类如何知道您需要什么元素标记?更不用说如何解析未定义的表达式语言了?首先,您是如何创建“过滤器”字符串的?在您的示例中,您只需要键入它,但您大概是从一些变量创建它的?