1

我将多个值存储在数据库中的字符串中。当我检索字符串以将其分配给不同的唯一变量时,我需要将其拆分。我在 VB 中做这个,vb 对我来说还是有点新。

Dim scourceString = "<Var1>Person Name</Var1><Var2>11/11/13</Var2><Var3>Somthing else</Var3>"
  • 字符串可能没有所有值。
  • 我想把它分开,知道<var#>我在处理哪个。

欢迎任何有关如何执行此操作的建议。

编辑:

我试过这个:

Dim sx As String = "<tag1>test</tag1>  <tag2>testa2</tag2> <tag3>test3</tag3>"
Dim sb As String = sx.Split(New [String]() {"<tag2>"}, StringSplitOptions.RemoveEmptyEntries)(1).Split(New [String]() {"</tag2>"}, StringSplitOptions.RemoveEmptyEntries)(0)

我可以得到值,但它很脏。

4

3 回答 3

2

如果您知道数据总是会使用开始和结束 XML 标记进行格式化,就像这样,那么要使其成为格式良好的 XML 文档,您需要做的就是添加一个根元素,如下所示:

Public Function ParseData(data As String) As MyData
    Dim doc As XDocument = XDocument.Parse("<Root>" + data + "</Root>")
    Dim values As New MyData()
    values.Var1 = doc.<Root>.<Var1>.Value
    values.Var2 = doc.<Root>.<Var2>.Value
    values.Var3 = doc.<Root>.<Var3>.Value
    Return values
End Function

Public Class MyData
    Public Property Var1 As String
    Public Property Var2 As String
    Public Property Var3 As String
End Class

然后你可以这样调用方法:

Dim scourceString As String = "<Var1>Person Name</Var1><Var2>11/11/13</Var2><Var3>Somthing else</Var3>"
Dim values As MyData = ParseData(scourceString)
Console.WriteLine(values.Var1)
Console.WriteLine(values.Var2)
Console.WriteLine(values.Var3)
于 2013-09-26T12:39:27.173 回答
2

尝试这个

    Dim s As String = "<Var1>Person Name</Var1><Var2>11/11/13</Var2><Var3>Somthing else</Var3>"
    s = "<root>" & s & "</root>"
    Dim doc As XDocument = XDocument.Parse(s)
    Dim arr As XElement() = doc.Root.Elements().ToArray()
    For Each item As XElement In arr
        Response.Write(Convert.ToString(item) & "<br>")
    Next
于 2013-09-26T12:53:11.053 回答
0

您不能拆分字符串,<Var#>因为您不知道“#”值到底是什么。所以你可以做的是用一个通用的unique分隔符来存储值,比如(使用"¥"或你想要的)

Dim scourceString = "Person Name¥11/11/13¥Somthing else" 

现在拆分字符串尝试这样的拆分方法

Dim TestArray() As String = scourceString.Split("¥")

您拥有 TestArray() 中的所有值,您可以通过索引访问它们,例如 TestArray(0), TestArray(1) .....

于 2013-09-26T12:10:43.650 回答