Mon HTML contient des balises de la forme suivante :
<div class="author"><a href="http://stackoverflow.com/user/1" title="View user profile.">Apple</a> - October 22, 2009 - 01:07</div>
J'aimerais extraire la date, "October 22, 2009 - 01:07" dans cet exemple, de chaque balise.
J'ai implémenté javax.swing.text.html.HTMLEditorKit.ParserCallback comme suit :
class HTMLParseListerInner extends HTMLEditorKit.ParserCallback {
private ArrayList<String> foundDates = new ArrayList<String>();
private boolean isDivLink = false;
public void handleText(char[] data, int pos) {
if(isDivLink)
foundDates.add(new String(data)); // Extracts "Apple" instead of the date.
}
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
String divValue = (String)a.getAttribute(HTML.Attribute.CLASS);
if (t.toString() == "div" && divValue != null && divValue.equals("author"))
isDivLink = true;
}
}
Cependant, l'analyseur ci-dessus renvoie "Apple" qui se trouve à l'intérieur d'un lien hypertexte dans la balise. Comment puis-je corriger l'analyseur pour extraire la date ?