croustaille Posted May 23, 2011 Share Posted May 23, 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; } } } Link to comment Share on other sites More sharing options...
Simon Daget Posted May 23, 2011 Share Posted May 23, 2011 Utilises les balises de code et un titre plus explicite que 'XML' dans la catégorie XML du forum. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.