2012-09-28 50 views
0

我一直試圖從一個html字符串中獲取一個數字,但我無法想出正確的方法,我已經爲Jsoup尋找指示,但我並不真正瞭解它是如何工作的。使用java解析HTML內部的數字

這就是我要解析的字符串之一:

<span class="b"><a href="/paline/linea/014?id_palina=76954&amp;nav=5#pal">014</a>:</span> 

我試圖得到儘可能輸出爲014,該鏈接的名稱。順便說一句,我需要在String變量中獲取數字,而不是整數。

或者這

<span class="b"><a href="/paline/percorso/50268?id_palina=76954&amp;nav=5#pal">08</a>:</span> 

對於08

我發現的主要問題是,兩件事情在字符串中改變,在數字後面/ paline/percorso /和其編號爲鏈接的名稱。有人可以幫我嗎?

回答

1

如果所有的樣品都是這樣的,你可以用簡單的字符串函數做到這一點:

final String input = "<span class=\"b\"><a href=\"/paline/linea/014?id_palina=76954&amp;nav=5#pal\">014</a>:</span>"; 

final int i2 = input.lastIndexOf("</a>"); 
final int i1 = input.lastIndexOf('>', i2) + 1; 

final String result = input.substring(i1, i2); 

System.out.println(result); 
+0

非常感謝,這工作完美。 – Iverie

0

你可以嘗試這樣的:

Elements resultLinks = doc.select("span.b > a"); 
for (Element e:resultLinks) 
    String yourText=e.text(); 
+0

這是如何幫助他獲得號碼? – eis

+0

他說他需要這個數字作爲一個字符串。選擇將返回所有鏈接。使用text()方法將返回鏈接的內容,他請求的字符串。 – dan

0

我可能會嘗試一個簡單的正則表達式。雖然取決於你的字符串,但它可能比簡單的快速和骯髒的正則表達式更復雜。

String html = "<span class="b"><a href="/paline/linea/014?id_palina=76954&amp;nav=5#pal">014</a>:</span>" 
html.replaceAll(".*<a.*>([0-9]*)</a.*", "$1");