| |||||||
Das Thema "[Erledigt]SAX XMLReader Parse" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Erfahrener Benutzer Modell: HTC Desire S Registriert seit: 12.04.2010
Beiträge: 246
Abgegebene Danke: 9
Erhielt 15 Danke für 14 Beiträge
| Ich bin zurzeit meine erste App am Entwickeln. Da ich mit Java noch nicht so erfahren bin stehe ich nun etwas an. Die Ausgangslage ist so das ich einen RSS Feed mit SAX XMLReader und einem ContentHandler Parse, aber danach komme ich nicht an die abgefüllten werte wieder ran. Ausschnitte aus dem Code: Hier der ContentHandler Code: public class RSSFeedContentHandler implements ContentHandler {
protected String currentValue;
protected RSSFeed rssFeed;
protected ArrayList<RSSItem> rssItems = new ArrayList<RSSItem>();
protected RSSItem rssItem;
protected Boolean insideItemElement = false;
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
currentValue = new String(ch, start, length);
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes atts) throws SAXException {
if ( localName.equals("channel") ){
this.rssFeed = new RSSFeed();
} else if ( localName.equals("item") ) {
this.insideItemElement = true;
this.rssItem = new RSSItem();
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if ( insideItemElement == false ) {
if ( localName.equals("title") ) {
this.rssFeed.setTitle(currentValue);
} else if ( localName.equals("link") ) {
if ( this.rssFeed.getLink() == null ) {
this.rssFeed.setLink(currentValue);
}
} else if ( localName.equals("description") ) {
this.rssFeed.setDescription(currentValue);
} else if ( localName.equals("language")) {
this.rssFeed.setLanguage(currentValue);
} else if ( localName.equals("pubDate")) {
this.rssFeed.setPubDate(currentValue);
}
} else {
if ( localName.equals("item") ){
if ( this.rssItem != null ) {
this.rssItems.add(this.rssItem);
}
} else if ( localName.equals("title") ) {
this.rssItem.setTitle(currentValue);
} else if ( localName.equals("description") ) {
this.rssItem.setDescription(currentValue);
} else if ( localName.equals("pubDate") ) {
this.rssItem.setPubDate(currentValue);
} else if ( localName.equals("channel") ){
this.rssFeed.setItem(this.rssItems);
}
}
} Code: private void pars(InputSource in) throws SAXException, IOException {
System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver");
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.setContentHandler(new RSSFeedContentHandler());
xmlReader.parse(in);
} also besser gesagt nur den "RSSFeed rssFeed" aus dem ContentHandler.Wie kriege ich das am besten hin? Natürlich kann ich mir auch vorstellen das ich irgend was übersehe ![]() Danke für eure Hilfe. Geändert von surtic (22.08.2011 um 15:30 Uhr) |
| | |
| | #2 (permalink) |
| Android Experte Modell: HTC Hero Registriert seit: 14.10.2009
Beiträge: 612
Abgegebene Danke: 18
Erhielt 42 Danke für 40 Beiträge
|
Es gibt 2 Warianten: - du liest und verstehst einen Tutorial über SAX Parser, und ergänzst deinen ContentHandler mit einen getter fpr das was dich interesiert ( und speicherst dem ContentHandler in einer Instanzvariable, damit du es später zu hand hast) - du liest (und verstehst) einen Tutorial über Pull-Parser, dem es auch bei der Android gibt. - und das wichtigste: fang gar nicht über dem DOM-Parser nachzudenken %)
__________________ _____________________________________________ Meine apps: http://www.pribluda.de/android Suche Schriftmuster von Prepaid-Auflade-Bons |
| | |
| | #3 (permalink) |
| Erfahrener Benutzer Modell: HTC Desire S Registriert seit: 12.04.2010
Beiträge: 246
Abgegebene Danke: 9
Erhielt 15 Danke für 14 Beiträge
|
@ko5tik: Danke für die Hilfe ja weis gar nicht wieso ich nicht auf die Idee mit dem getter gekommen bin es ist glaube ich einfach zu heiss im Büro....Erledigt. |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Expression mit SAX? | mcpd | Android App Entwicklung | 2 | 19.07.2011 10:59 |
| XML SAX Parser | TeeJay90 | Android App Entwicklung | 0 | 12.06.2011 18:50 |
| App Cleartune - Einstellungen für Sax? | altkanonist | Tools | 1 | 08.05.2011 11:54 |
| k9: Probleme mit großen Mails - unable to parse | krawutke | Sonstige Apps & Widgets | 2 | 23.06.2009 09:30 |