Как использовать DOM для правильного чтения XML в приложениях Android? - PullRequest
0 голосов
/ 20 ноября 2011

Я могу получить требуемую информацию, если файл XML хранится локально на моем компьютере, но чтение его при хранении на телефоне работает не очень хорошо.

Я пробовал XMLPullParser, но он извлекает двоичную информацию об именах идентификаторов и т. Д., И мне нужно настоящее имя.

Код:

    final String ANDROID_ID = "android:id";

            try {
                File fXmlFile = new File("res/layout/page1.xml");
                DocumentBuilderFactory dbFactory = DocumentBuilderFactory
                        .newInstance();
                DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                Document doc = dBuilder.parse(fXmlFile);
                doc.getDocumentElement().normalize();

                NodeList nList = doc.getElementsByTagName("Button");

                for (int temp = 0; temp < nList.getLength(); temp++) {
                    Node nNode = nList.item(temp);
                    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                        Element eElement = (Element) nNode;

                        if (eElement.hasAttribute(ANDROID_ID))
                            System.out.println("ID: "
                                    + eElement.getAttribute(ANDROID_ID));
                    }
                }
            } 

            catch (Exception e) {
                System.out.println("Catch");


  e.printStackTrace();
        }

Ответы [ 2 ]

0 голосов
/ 20 ноября 2011

При анализе XML эта ссылка хорошо описывает.Здесь вы также можете найти другие парсеры с xmlPullParser.

0 голосов
/ 20 ноября 2011

в документации XmlPullParser есть getAttributeCount () и getAttributeByName (int index), которые могут быть полезны.Вы должны использовать его в START_TAG

...