Je suis en train d'analyser le XML ci-dessous à l'aide SAX:Comment analyser noeud qui a le texte ou les nœuds enfants dans Android SAX
<feed>
<item>
<link>
<type>MY TYPE</type>
<id>123456789</id>
<key>123456789</key>
</link>
</item>
<item>
<link>htt://www.example.com</link>
</item>
</feed>
Le nœud lien peut avoir soit nœuds enfants (type, ID, clé) ou du texte.
J'ai essayé d'utiliser l'extrait de code ci-dessous:
RootElement root = new RootElement("feed");
Element item = root.getChild("item");
item.getChild("link").setEndTextElementListener(new EndTextElementListener() {
public void end(String body) {
// Grab link text
}
});
item.getChild("link").getChild("type").setEndTextElementListener(new EndTextElementListener() {
public void end(String body) {
// Get type node text
}
});
Mais le problème est que SAX jette le dessous Exception:
if (endTextElementListener != null) {
throw new IllegalStateException("This element already has an end"
+ " text element listener. It cannot have children.");
}
Est-il possible autour des nœuds d'analyse qui peuvent avoir un texte ou d'un enfant nœuds? OU la structure XML doit-elle changer?