在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之间的数据。
答案 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()