Comment puis-je analyser un fichier xml dans Blackberry? Puis-je avoir un lien ou un exemple de code ou un tutoriel?Comment analyser le document XML dans Blackberry?
3
A
Répondre
4
J'ai utilisé SAX pour traiter des réponses XML à partir d'une API Web et cela a bien fonctionné pour moi. Découvrez: http://developerlife.com/tutorials/?p=28
Qu'essayez-vous exactement d'accomplir avec XML?
0
Vous devez disposer d'une interface pour implémenter l'écouteur afin de notifier votre thread d'interface utilisateur une fois l'analyse terminée.
import java.util.Vector;
public interface MediaFeedListner {
public void mediaItemParsed(Vector mObject);
public void exception(java.io.IOException ioe);
}
mettre en œuvre votre classe avec MediaFeedListner puis remplacer les mediaItemParsed (Vector mObject) et (exception java.io.IOException) IOE methoods.
La méthode mediaItemParsed() aura la logique pour notifier le thread d'interface utilisateur et effectuer les opérations requises.
Voici le code de l'analyseur XML.
package com.test.net;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Vector;
import net.rim.device.api.xml.parsers.ParserConfigurationException;
import net.rim.device.api.xml.parsers.SAXParser;
import net.rim.device.api.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import com.span.data.MediaObject;
import com.span.utils.FileManager;
public class MediaHandler extends DefaultHandler {
protected static final String TAG_FEED = "feed";
protected static final String TAG_ENTRY = "entry";
protected static final String TAG_TITLE = "title";
protected static final String TAG_MEDIA_GROUP = "group";
protected static final String TAG_MEDIA_CATEGORY = "category";
protected static final String TAG_MEDIA_CONTENT = "content";
protected static final String TAG_MEDIA_DESCRIPTION = "description";
protected static final String TAG_MEDIA_THUMBNAIL = "thumbnail";
protected static final String ATTR_MEDIA_CONTENT= "url";
protected static final String ATTR_MEDIA_THUMBNAIL = "url";
boolean isEntry = false;
boolean isTitle = false;
boolean isCategory = false;
boolean isDescription = false;
boolean isThumbUrl = false;
boolean isMediaUrl = false;
boolean isMediaGroup = false;
String valueTitle = "";
String valueCategory = "";
String valueDescription = "";
String valueThumbnailUrl = "";
String valueMediaUrl = "";
public static Vector mediaObjects = null;
MediaObject _dataObject = null;
MediaFeedListner listner = null;
public MediaHandler(MediaFeedListner listner) {
this.listner = listner;
mediaObjects = new Vector();
}
public void parseXMLString(String xmlString) {
try {
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
parser.parse(new ByteArrayInputStream(xmlString.getBytes()), this);
}
catch (ParserConfigurationException e) {
e.printStackTrace();
}
catch (SAXException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException {
if(localName.equalsIgnoreCase(TAG_FEED)) {
//return;
}
if(localName.equals(TAG_ENTRY))
{
_dataObject = new MediaObject();
isEntry = true;
}
if(isEntry) {
if(localName.equalsIgnoreCase(TAG_TITLE)) {
isTitle = true;
}
if(localName.equals(TAG_MEDIA_GROUP))
isMediaGroup = true;
if(isMediaGroup) {
if(localName.equalsIgnoreCase(TAG_MEDIA_CONTENT)) {
valueMediaUrl = attributes.getValue(ATTR_MEDIA_CONTENT);
if(valueMediaUrl != null) {
_dataObject.setMediaUrl(valueMediaUrl);
valueMediaUrl = "";
}
}
if(localName.equalsIgnoreCase(TAG_MEDIA_THUMBNAIL)) {
valueThumbnailUrl = attributes.getValue(ATTR_MEDIA_THUMBNAIL);
if(valueThumbnailUrl != null) {
_dataObject.setMediaThumb(valueThumbnailUrl);
valueThumbnailUrl = "";
}
}
if(localName.equalsIgnoreCase(TAG_MEDIA_DESCRIPTION)) {
isDescription = true;
}
if(localName.equalsIgnoreCase(TAG_MEDIA_CATEGORY)) {
isCategory = true;
}
}
}
}
public void characters(char[] ch, int start, int length) throws SAXException {
if(isTitle){
valueTitle = new String(ch, start, length);
_dataObject.setMediaTitle(valueTitle);
System.out.println("Title value " + valueTitle);
valueTitle = "";
}
if(isCategory){
valueCategory = new String(ch, start, length);
_dataObject.setMediaCategory(valueCategory);
System.out.println("category value " + valueCategory);
valueCategory = "";
}
if(isDescription){
valueDescription = new String(ch, start, length);
_dataObject.setMediaDesc(valueDescription);
System.out.println("category value " + valueDescription);
valueDescription = "";
}
}
public void endElement(String uri, String localName, String name) throws SAXException {
if(localName.equalsIgnoreCase(TAG_FEED)) {
listner.mediaItemParsed(mediaObjects);
printMediaInfo(mediaObjects);
}
if(localName.equalsIgnoreCase(TAG_ENTRY)) {
isEntry = false;
isTitle = false;
isCategory = false;
isDescription = false;
mediaObjects.addElement(_dataObject);
}
}
public static void printMediaInfo(Vector v){
int length = v.size();
for(int i = 0 ; i <length ; i++){
MediaObject mediaObj = (MediaObject) v.elementAt(i);
FileManager.getInstance().writeLog("Title: " + mediaObj.getMediaTitle());
FileManager.getInstance().writeLog("Category: " + mediaObj.getMediaCategory());
FileManager.getInstance().writeLog("Desc: " + mediaObj.getMediaDesc());
FileManager.getInstance().writeLog("URL: " + mediaObj.getMediaUrl());
FileManager.getInstance().writeLog("Thumb: " + mediaObj.getMediaThumb());
FileManager.getInstance().writeLog("Fav count: " + mediaObj.getMediaFavCount());
FileManager.getInstance().writeLog("View Count: " + mediaObj.getMediaViewCount());
FileManager.getInstance().writeLog("Ratings: " + mediaObj.getMediaRating());
FileManager.getInstance().writeLog("============================================");
}
}
}
C'est fait.
Questions connexes
- 1. comment analyser le document XML?
- 2. Analyser le document XML dans Ruby
- 3. Comment analyser ce document XML?
- 4. Comment analyser le document XML dans le rappel?
- 5. Analyser le document XML en C#
- 6. Comment utiliser ANTLR pour analyser le document xml
- 7. Cocoa/Objective-C: meilleure pratique pour analyser le document XML?
- 8. Création XML dans blackberry
- 9. document xml imbriqué dans le document Simplexml
- 10. Comment analyser XML à partir d'un mobile?
- 11. comment analyser xml
- 12. sauver le document xml
- 13. Comment analyser le fichier XML dans C# (résultat youtube api)?
- 14. Analyser le fichier XML local dans Android
- 15. comment analyser rss xml?
- 16. Comment analyser le format "aléatoire" XML
- 17. Analyser le code XML Question
- 18. Problème d'analyse XML sur Blackberry
- 19. Comment convertir un document XMl en String dans blackberry JDE 4.7
- 20. comment analyser xml avec XmlTextReader dans C#
- 21. comment analyser les balises xml dans l'iphone
- 22. comment analyser une chaîne xml dans Postgres
- 23. Comment peut-on analyser un document XML après la première validation contre une DTD dans VB6
- 24. Comment analyser XML dans ASP/vbscript?
- 25. Java: comment analyser XML dans E4X?
- 26. Comment analyser XML Schema File
- 27. Analyser le document MS Word pour XMLfragments - C#
- 28. Un fichier avec l'extension 'xml' est-il requis pour analyser XML sur un BlackBerry?
- 29. Comment analyser XML (API XML Fogbugz)?
- 30. Comment analyser un fichier XML
+1 pour le lien, presque oublié cet article! – Dan
+1 est très utile pour comprendre le processus d'analyse – BBdev