2011-06-30 11 views
0

VB.NETでテキストを分割する簡単な方法はありますか? (間にいただきましつかむために、開始と終了の文字列を使用して?)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]; 

は私に「someData1」を与えるだろう[1]インデックスを[2]に変更すると、 "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...> 

私は、後に第一と第三のdivの間でデータをつかむ< div>の合計</div>のインデックスを見つける必要がありますそれ。

+0

はあなたが文字列について話す? – asma

+1

あなたはXMLを引き離しているようです。そのような場合は、手作業で文字列を解析する際に何百ものケースを処理するXMLライブラリを使用しないでください。 –

+0

実際には、私が扱っているHTMLがたくさんある文字列です。 – bfritz

答えて

0

を使用してみてくださいHTMLを解析するには...

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() 
1
Dim e = XElement.Parse(str) 
Dim a = e.XPathSelectElements("./blah").Elements().ToArray() 

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

EDIT: これは私が今まで書いた悪化したコードの一部ですが、私はそれが、働いて得たHtml Agility Pack

+0

それはXMLデータの場合にはうまくいくでしょう。私は上記を試して、私の出力HTMLは、Xactimateと呼ばれるソフトウェアの一部から来て、私は "System.Xml.XmlException: '0'のような多くのエラーが発生しているXHTMLのフレンドリーなコードを作成しません予想されるトークンは '' '' '' '" – bfritz

+0

あなたが指定した"チャンク "については、divの – Magnus

+0

の周りにノードを追加するだけで上記のコードを使用することができます。私はXPathを使用することができるように良いHTMLの "チャンク" ... – bfritz

関連する問題