sarakinos Δημοσ. 7 Δεκεμβρίου 2012 Share Δημοσ. 7 Δεκεμβρίου 2012 Καλησπέρα παιδιά , προσπαθώ εδώ και καιρό να καταλάβω πως υλοποιείται το xml parsing σε Android προσπαθώντας να φτιάξω μια πολύ απλή εφαρμογή που παίρνει ένα rss feed και τραβάει κάποια δεδομένα. Το πρόβλημά μου είναι ότι δεν μπορώ να καταλάβω πως δουλεύει καμιά από τις τεχνικές που είδα στα διάφορα tutorials (SAX,XmlPullParser). Θα ήθελα κάποιος να μου εξηγήσει πως γίνεται σε όσο πιο απλό και κατανοητό τρόπο μπορεί. Ευχαριστώ εκ τον προτέρων. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nilosgr Δημοσ. 7 Δεκεμβρίου 2012 Share Δημοσ. 7 Δεκεμβρίου 2012 Κατ αρχην, ξερεις τι ειναι XML; Aν ναι, που κολλας; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
sarakinos Δημοσ. 8 Δεκεμβρίου 2012 Μέλος Share Δημοσ. 8 Δεκεμβρίου 2012 Στον τρόπο που λειτουργούν οι parsers στον Android και γενικότερα στην Java.Έχω βρει διάφορα snippets αλλά θέλω να καταλάβω τι κάνουν και να μην κάνω απλά ένα copy & paste. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
warlock9_0 Δημοσ. 8 Δεκεμβρίου 2012 Share Δημοσ. 8 Δεκεμβρίου 2012 http://developer.android.com/training/basics/network-ops/xml.html Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nilosgr Δημοσ. 8 Δεκεμβρίου 2012 Share Δημοσ. 8 Δεκεμβρίου 2012 Το SAX είναι λιγο παραξενο, επειδη ειναι event based, οποτε παμε ενα παραειγμα με το DOM API. Αρχικα δημιυοργουμε ενα αντικειμενο DocumentBuilderFactory το οποιο θα διαβασει το XML και θα μας δημιουργισει ενα αντικειμενο Document> private void parseXmlFile(){ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); //parse using builder to get DOM representation of the XML file dom = db.parse("MyFile.xml"); }catch(ParserConfigurationException pce) { pce.printStackTrace(); }catch(SAXException se) { se.printStackTrace(); }catch(IOException ioe) { ioe.printStackTrace(); } } Mετα διαβαζουμε το root element του αρχειου και επαναληπτικα διαβαζουμε καθε εσωτερικο κομβο με τα attributes του> private void parseDocument(){ //get the root elememt Element docEle = dom.getDocumentElement(); //get a nodelist of "ΜyTag" elements NodeList nl = docEle.getElementsByTagName("MyTag"); if(nl != null) { for(int i = 0 ; i < nl.getLength();i++) { //get the element Element el = (Element)nl.item(i); //here you get the attributes String attr = el.getAttribute("MyAttr"); } } } Παρατηρησεις: αν το MyTag εχει κι αυτο εσωτερικους κομβους, κανεις την ιδια διαδικασια (μεσα στο loop των MyTag) αν το MyAttr ειναι πχ int καλεις την μεθοδο parseInt της κλασης Integer Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα