J'ai créé une application Java qui ouvre un fichier xml qui ressemble à ceci:fichier Open XML de res/xml dans Android
<AnimalTree>
<animal>
<mammal>canine</mammal>
<color>blue</color>
</animal>
<!-- ... -->
</AnimalTree>
Et je peux l'ouvrir à l'aide:
File fXmlFile = getResources.getXml("res/xml/data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList animalNodes = doc.getElementsByTagName("animal");
Ensuite, Je peux simplement créer un noeud, pousser l'objet dans un ListArray, puis faire ce que je veux avec les objets pendant que je boucle dans le ListArray.
for (int temp = 0; temp < animalNodes.getLength(); temp++) {
Node nNode = animalNodes.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
question thisAnimal = new animal();
thisAnimal.mammal = getTagValue("mammal",eElement);
// ...
Clair et simple! Maintenant seulement, dans Android, je ne peux pas simplement lire le fichier "res/xml/data.xml
" parce que "File();
" nécessite un String
pas un integer
(id). C'est là que je suis perdu. Y at-il un moyen que je peux faire "File();
" ouvrir le fichier, ou est-ce impossible sans utiliser SAXparser
ou XPP
? (Je ne peux vraiment pas les comprendre tous les deux, peu importe combien j'essaie.)
Si je suis forcé d'utiliser ces méthodes, quelqu'un peut-il me montrer un code simple analogue à mon exemple?
Je ne comprends pas? Est-ce que je change ensuite est une chaîne et le mettre dans "File();" ? La ressource IBM que vous avez quittée montre comment extraire du XML en ligne. Je ne comprends pas pourquoi c'est si difficile? Pouvez-vous créer une version pseudo-code de ce que j'ai posté ci-dessus? Merci. – jeremy
@jeremy: mise à jour de la réponse – jcollum
C'est mieux et j'ai vu ça sur le site IBM, mais "getInputStream();" est dans la classe BaseFeedParser, qui "implémente" la classe FeedParser qui n'est pas répertoriée sur le site IBM. J'ai créé la classe BaseFeedParser dans mon code, mais eclipse me renvoie une erreur à propos de FeedParser. – jeremy