在VB.NET中有没有简单的方法来分割文本?

时间:2011-06-30 07:30:28

标签: vb.net string split slice

在VB.NET中有没有简单的方法来分割文本? (使用开始和结束字符串来抓取其中的什么?)

我一直在JScript中执行以下操作:

<junk>
<blah>
<data>someData1</data>
<data>someData2</data>
<data>someData3</data>
</blah>
</junk>
var data = string.split('<data>')[1].split('</data>')[0];

通过将[1]索引更改为[2]会给我“someData1”会给我“someData2”非常容易

由于某种原因,这似乎很难在VB.NET中实现。

以下是我正在处理的实际HTML的一小部分:

<...malformed html>
<div style='font-size:10pt;font-family:Times;color:#000000;position:absolute;top:2731.068;left:48'>Total</div>
<div style='font-size:10pt;font-family:Times;color:#000000;position:absolute;top:2731.068;left:346.2141'>18,072.59</div>
<div style='font-size:10pt;font-family:Times;color:#000000;position:absolute;top:2731.068;left:444.3433'>100.00%</div>
<div style='font-size:10pt;font-family:Times;color:#000000;position:absolute;top:2731.068;left:567.1293'>21,687.11</div>
<div style='font-size:10pt;font-family:Times;color:#000000;position:absolute;top:2731.068;left:666.3433'>100.00%</div>
<malformed html...>

我需要找到&lt; div&gt; Total&lt; / div&gt; index然后在此之后获取第1和第3个div之间的数据。

2 个答案:

答案 0 :(得分:1)

Dim e = XElement.Parse(str)
Dim a = e.XPathSelectElements("./blah").Elements().ToArray()

a(0).Value 'someData1
a(1).Value 'someData2

编辑: 要解析html,请尝试使用Html Agility Pack

答案 1 :(得分:0)

我得到了它的工作,虽然这是我写过的一些更糟糕的代码......

Dim sr As StreamReader

sr = New StreamReader("C:\test.html")

Dim xactHTML As String = sr.ReadToEnd

Dim left As Integer = xactHTML.IndexOf("Total</div>")
Dim chunk1 As String = xactHTML.Substring(left + 12)

Dim right As Integer = chunk1.IndexOf("<div style='position")
Dim chunk2 As String = chunk1.Substring(0, right - 1)

Dim xHTML As String = "<xml>" & chunk2 & "</xml>"

Dim e = XElement.Parse(xHTML)
Dim a = e.Elements().ToArray()

Dim damageAmmount As String = a(2).Value()
相关问题