拆分字符串并将多个值存储到可识别的变量中

时间:2013-09-26 12:04:37

标签: asp.net vb.net string split

我在数据库中的字符串中存储多个值。当我检索它时,我需要将字符串拆分为不同的唯一变量。我在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)

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

3 个答案:

答案 0 :(得分:2)

如果你知道数据总是要用开头和结尾的XML标签格式化,那么你需要做的就是添加一个根元素,如下所示:< / p>

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)

答案 1 :(得分: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

答案 2 :(得分:0)

您无法使用<Var#>拆分字符串,因为您不能确切地知道“#”值是什么。所以你可以做的是用一个共同的unique分隔符存储值(如使用"¥"或你想要的那样)

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

现在拆分字符串try split方法就像这样

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

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