0

我一直在尝试从 html 字符串中获取一个数字,但我无法想出正确的方法,我已经在寻找 Jsoup 的说明,但我并不真正了解它是如何工作的。

这是我必须解析的字符串之一:

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

我想要得到的输出是 014,即链接的名称。我需要获取字符串变量中的数字,而不是整数。

或这个

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

对于08。

我发现的主要问题是字符串中有两件事发生了变化,/paline/percorso/ 之后的数字和链接名称的数字。有人可以帮我吗?

4

3 回答 3

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 );
于 2012-09-28T14:00:14.920 回答
0

您可以尝试以下方法:

Elements resultLinks = doc.select("span.b > a");
for (Element e:resultLinks)
    String yourText=e.text();
于 2012-09-28T13:29:42.383 回答
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" );
于 2012-09-28T14:10:00.230 回答