Java: Eu tenho uma grande string de html e preciso extrair o texto href = “…”
Eu tenho essa string contendo um grande pedaço de html e estou tentando extrair o link da parte href = "..." da string. O href pode estar em uma das seguintes formas:
<a href="..." />
<a class="..." href="..." />
Eu realmente não tenho um problema com o regex, mas por algum motivo quando eu uso o seguinte código:
String innerHTML = getHTML();
Pattern p = Pattern.compile("href=\"(.*)\"", Pattern.DOTALL);
Matcher m = p.matcher(innerHTML);
if (m.find()) {
// Get all groups for this match
for (int i=0; i<=m.groupCount(); i++) {
String groupStr = m.group(i);
System.out.println(groupStr);
}
}
Alguém pode me dizer o que está errado com o meu código? Eu fiz essas coisas em php, mas em Java eu estou de alguma forma fazendo algo errado ... O que está acontecendo é que ele imprime toda a string html sempre que eu tento imprimi-lo ...
EDIT: Só para que todos saibam que tipo de uma string eu estou lidando com:
<a class="Wrap" href="item.php?id=43241"><input type="button">
<span class="chevron"></span>
</a>
<div class="menu"></div>
Toda vez que eu corro o código, ele imprime toda a string ... Esse é o problema ...
E sobre o uso de jTidy ... estou nisso, mas seria interessante saber o que deu errado nesse caso também ...