Я создал приложение Java, которое открывает XML-файл, который выглядит примерно так:
<AnimalTree>
<animal>
<mammal>canine</mammal>
<color>blue</color>
</animal>
<!-- ... -->
</AnimalTree>
И я могу открыть его, используя:
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");
Затем я могу просто создать узел, поместить объект в ListArray, а затем делать то, что я хочу, с объектами, пока я перебираю 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);
// ...
Просто и понятно! Теперь только в Android я не могу просто прочитать файл "res/xml/data.xml
", потому что "File();
" требует String
, а не integer
(id). Это где я потерян. Есть ли способ, которым я могу заставить "File();
" открыть файл, или это невозможно без использования SAXparser
или XPP
? (оба из которых я действительно не могу понять, как бы я ни старался.)
Если я вынужден использовать эти методы, может кто-нибудь показать мне простой код, аналогичный моему примеру?