croustaille Posté(e) 23 mai 2011 Share Posté(e) 23 mai 2011 Bonjour, J'ai un problème sur la lecture d'un fichier xml. Ce dernier est correcte, mais lorsque que je le lit via android , ce dernier me tronque le contenu d'une balise. Ceci ce fait de manière aléatoire, donc ne correspond pas à un caractère dans le flux xml. Savez vous pourquoi?:! merci voici mon code de lecture ArticleHandler MyArticleHandler = new ArticleHandler(); try { Reader reader = new InputStreamReader(xmlFile, "UTF-8"); InputSource is = new InputSource(reader); is.setEncoding("UTF-8"); SAXParserFactory fabrique = SAXParserFactory.newInstance(); SAXParser saxParser = fabrique.newSAXParser(); saxParser.parse(is, MyArticleHandler); ArrayList<article> mesArticles = MyArticleHandler.getArticles(); ... } ///////////////////////////////////////////////////////// public class ArticleHandler extends DefaultHandler { ArrayList<article> _ListArticles; article _article; boolean bFoundDernieresArticle = false; final int REC_Id = 1; final int REC_Titre = 2; final int REC_DatePublication = 3; final int REC_Description = 4; final int REC_UrlImage = 5; int depth = 0; int currentstate = 0; ArticleHandler() { } ArrayList<article> getArticles() { return _ListArticles; } public void startDocument() throws SAXException { _ListArticles = new ArrayList<article>(); } public void endDocument() throws SAXException { } public int getCount() { return depth; } public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { depth++; if (localName.equals("DerniersArticles")) { currentstate = 0; return; } if (localName.equals("article")) { _article = new article(); return; } if (localName.equals("Id")) { currentstate = REC_Id; return; } if (localName.equals("Titre")) { currentstate = REC_Titre; return; } if (localName.equals("DatePublication")) { currentstate = REC_DatePublication; return; } if (localName.equals("Description")) { currentstate = REC_Description; return; } if (localName.equals("UrlImage")) { currentstate = REC_UrlImage; return; } currentstate = 0; } public void endElement(String namespaceURI, String localName, String qName) throws SAXException { depth--; if (localName.equals("article")) { _ListArticles.add(_article); return; } } public void characters(char ch[], int start, int length) { String theString = new String(ch, start, length); switch (currentstate) { case REC_Id: _article.setId_article(Integer.parseInt(theString)); currentstate = 0; break; case REC_Titre: _article.setTitre_article(theString); currentstate = 0; break; // case REC_DatePublication: // //_article.set(theString); // currentstate = 0; // break; case REC_Description: _article.setDetail_article(theString); currentstate = 0; break; case REC_UrlImage: _article.setImage_article(theString); currentstate = 0; break; default: return; } } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Simon Daget Posté(e) 23 mai 2011 Share Posté(e) 23 mai 2011 Utilises les balises de code et un titre plus explicite que 'XML' dans la catégorie XML du forum. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.