Aloha,
ich möchte aus einem Text mögliche HTML-Formular-Elemente finden und von diesen den Namen und die Value speichern.
Dafür gehe ich folgendermaßen vor:
Das ganze funktioniert auch, bis auf den option-Tag. Dieser wird nie im Text (content) gefunden - auch wenn dieser vorhanden ist.
Woran könnte das liegen?
(Pair ist einfach nur eine Klasse, welche zwei Datentypen aufnehmen kann. Ich bin mir zwar ziemlich sicher, dass Java dafür etwas bereitstellt - jedoch muss ich peinlicherweise zugeben noch nichts gefunden zu haben.)
ich möchte aus einem Text mögliche HTML-Formular-Elemente finden und von diesen den Namen und die Value speichern.
Dafür gehe ich folgendermaßen vor:
Java:
HTML.Tag[] tags = { HTML.Tag.INPUT, HTML.Tag.SELECT, HTML.Tag.OPTION, HTML.Tag.TEXTAREA };
ArrayList<Pair<String, String>> forms = new ArrayList<Pair<String, String>>();
HTMLEditorKit editKit = new HTMLEditorKit();
StringReader reader = new StringReader(content);
HTMLDocument.Iterator iterator;
HTMLDocument htmlDoc = (HTMLDocument) editKit.createDefaultDocument();
editKit.read(reader, htmlDoc, 0);
for (int i = 0; i < tags.length; i++) {
iterator = htmlDoc.getIterator(tags[i]);
for (; iterator.isValid(); iterator.next()) {
AttributeSet attributes = iterator.getAttributes();
String formName = (String) attributes.getAttribute(HTML.Attribute.NAME);
String formValue = (String) attributes.getAttribute(HTML.Attribute.VALUE);
forms.add(new Pair<String, String>(formName, formValue));
}
}
Das ganze funktioniert auch, bis auf den option-Tag. Dieser wird nie im Text (content) gefunden - auch wenn dieser vorhanden ist.
Woran könnte das liegen?
(Pair ist einfach nur eine Klasse, welche zwei Datentypen aufnehmen kann. Ich bin mir zwar ziemlich sicher, dass Java dafür etwas bereitstellt - jedoch muss ich peinlicherweise zugeben noch nichts gefunden zu haben.)