看板 java 關於我們 聯絡資訊
※ 引述《butme (who?)》之銘言: : 小弟最近的問題有點多 麻煩大家幫我想想看了 : 我在作的事如下 : : input 是一個URL : 我想分析這個URL內所有包在table tag內的資料 : <table> : <tr><td> 1 </td></tr> : <tr><td> 2 </td></tr> : <tr> : <table> : <tr><td> 3 </td></tr> : <tr><td> 4 </td></tr> : </table> : </tr> : <tr><td> 7 </td></tr> : </table> : <table> : <tr><td> 5 </td></tr> : <tr><td> 6 </td></tr> : </table> String HtmlSource=網頁的原始資料 Pattern P_table = Pattern.compile("<table>[\\S\\s]+<\table>",,Pattern.UNICODE_CASE); Matcher M_table = P_table.matcher(HtmlSource); while(M_table.find()){ String Table_content = M_table.group(); Pattern P_td= Pattern.compile("<td>[\\S\\s]*?</td>",,Pattern.UNICODE_CASE); Matcher M_td= P_td..matcher(Table_content); while(M_td.find){ String result =M_td.group(); 這邊的result就是<td></td>中間的字串了 } pattern的地方非常不嚴謹 話說 要用暴力法indexOf也是可以寫出來(這是我ㄧ年前幹過的蠢事) } : 真實情況可能更複雜 : 我希望我能得到三個table的物件,結果如下 : 第一個table : <tr><td> 1 </td></tr> : <tr><td> 2 </td></tr> : <tr><td> 7 </td></tr> : 第二個table : <tr><td> 3 </td></tr> : <tr><td> 4 </td></tr> : 第三個table : <tr><td> 5 </td></tr> : <tr><td> 6 </td></tr> : 希望程式不要寫死 而且傳回的值是三個table物件 : 而三個table物件內 又包含了tr、td物件,可以讓我分析出它們夾的plaintext : 請問版上的大大們有什麼好方法或好建議嗎 @@~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.147.184 ※ 編輯: slalala 來自: 61.59.147.184 (05/05 02:13)
butme:這樣有辦法判斷哪個值是屬於哪個table的嗎 05/05 08:25
willieliao:用dom的xml parser假裝他是xml就好了,再用getElementB 05/05 08:27
willieliao:yTagName("table")就會傳回三個element 05/05 08:29
butme:這樣的作法似乎對第一個TABLE來說取到的值是1 2 3 4 7 05/05 09:17