簡體   English   中英

Android:解析HTML代碼塊

[英]Android : Parse HTML block of code

我有以下HTML代碼,我需要解析它以檢索玩家名稱和他已經得分的運行。 在這種情況下,它是'Ross Taylor'和9.什么是解析此信息的最佳方法? 不想使用HTML解析器。 REGEX是最好的方式(我知道人們對此已經死了!但我只想要這些2位信息,因此不想使用解析器)? 我一直絞盡腦汁想知道如何弄清楚html文件中玩家名稱的位置以及隨后得分的行。 下面的HTML注釋部分是硬編碼部分。 我可以到達這個地方。 然后檢索標簽之間的名稱。 這是一個很好的方法嗎? 另外如何在下一行中檢索運行部分?


<!-- <a href="javascript:void(0);" onClick="return showHwkTooltip(this, 'lvpyrbat1');" class="livePlayerCurrent">*Luke Woodcock</a>-->

<a href="/icc_cricket_worldcup2011/content/current/player/38920.html" target="_blank" class="livePlayerCurrent" title="view the player profile for Ross Taylor">
*Ross Taylor
</a>    <span style="margin-left:5px;" title="left-hand bat">(lhb)</span >

   </td >
   <td><b>9</b></td>
   <td>9</td>
   <td>1</td>
   <td>0</td>
   <td>100.00</td>
   <td></td>
   <td colspan="3" align="left"><span class="batStyl">striker</style></td>
   <td></td>
   <td colspan="8"></td>
  </tr>

如果您需要更多信息,請告訴我。

問候,山姆

解析此信息的最佳方法是什么?

使用HTML解析器。

不想使用HTML解析器。

我不同意。

REGEX是最好的方式

沒有。

請考慮使用適當的工具,例如, html/xml parser而不是regex

如果您真的想使用正則表達式,可以嘗試以下方法:

提取分數

  (?<=\\<b\\>)\\d+(?=\\</b\\>)

提取玩家名稱

  (?<=\\>)[^\\<]+(?=\\</a\\>)

第二個正則表達式假定您通過刪除注釋標記之間的anchortag來清理xml。

 <!-- ... -->

它的作用是在任何anchortag中提取值。 這是使用正則表達式時的一個基本限制,它不是上下文感知的。

對於它的價值,你也可以看看Jsoup 我在我的項目中使用它,它很好地處理格式錯誤的HTML。 我相信這可能是我使用它的唯一原因;)

此致,EZFrag

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM