Android analyseur SAX de ne pas obtenir le plein texte entre les balises
J'ai créé mon propre DefaultHandler pour analyser les flux rss et pour la plupart des aliments qu'il fonctionne bien, mais, pour ESPN, c'est de couper la partie de l'url de l'article en raison de la façon dont ESPN formats il de l'url. Un exemple d'un article complet url de ESPN..
http://sports.espn.go.com/nba/news/story?id=5189101&campaign=rss&source=ESPNHeadlines
Le problème, c'est pour une raison quelconque, le DefaultHandler caractères méthode est ce à partir de la balise qui contient l'url ci-dessus.
http://sports.espn.go.com/nba/news/story?id=5189101
Comme vous pouvez le voir, il est avant tout l'url à partir de l'esperluette code d'échappement et après. Comment puis-je obtenir de l'analyseur SAX à ne pas couper ma chaîne hors tension à ce code d'échappement? Pour ref. voici mes personnages méthode..
public void characters(char ch[], int start, int length) {
String chars = (new String(ch).substring(start, start + length));
try {
//If not in item, then title/link refers to feed
if (!inItem) {
if (inTitle)
currentFeed.title = chars;
} else {
if (inLink)
currentArticle.url = new URL(chars);
if (inTitle)
currentArticle.title = chars;
if (inDescription)
currentArticle.description = chars;
if (inPubDate)
currentArticle.pubDate = chars;
if (inEnclosure) {
}
}
} catch (MalformedURLException e) {
Log.e("RSSReader", e.toString());
}
}
Rob W.
Vous devez vous connecter pour publier un commentaire.
De la la documentation de la
characters()
méthode:Quand j'écris les parseurs SAX, j'utilise un
StringBuilder
à ajouter, tout ce passé àcharacters()
:Puis dans
endElement()
, je prends le contenu de laStringBuilder
et faire quelque chose avec elle. De cette façon, si l'analyseur appelscharacters()
plusieurs fois, je n'ai pas manqué de rien.startElement()
etendElement()
méthodes.java
, où vous expliquez votre entrée et que vous essayez d'atteindre.Si j'ai tout compris, le code ci-dessus est la solution.