Aller au contenu

XML


croustaille

Recommended Posts

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...