Maison >développement back-end >Tutoriel XML/RSS >Android dom analyse la méthode XML

Android dom analyse la méthode XML

黄舟
黄舟original
2017-02-09 14:10:501566parcourir

Créez d'abord vous-même un fichier XML : DomTest.xml

<?xml version="1.0" encoding="utf-8"?>  
<classes>  
    <group name="一年级" num="10">  
        <person name="小明" age="7">  
            <chinese>  
                语文80  
            </chinese>  
            <english>  
                英语89  
            </english>  
        </person>  
        <person name="小强" age="8">  
            <chinese>  
                语文90  
            </chinese>  
            <english>  
                英语99  
            </english>  
        </person>  
    </group>  
    <group name="二年级" num="20">  
        <person name="小文" age="8">  
            <chinese>  
                语文85  
            </chinese>  
            <english>  
                英语95  
            </english>  
        </person>  
        <person name="小中" age="9">  
            <chinese>  
                语文80  
            </chinese>  
            <english>  
                英语90  
            </english>  
        </person>  
    </group>  
</classes>

Le résultat analysé est affiché comme suit :

Android dom analyse la méthode XML

Analysons le code source :

/**  
 * 用dom方式 解析xml 文件  
 * @param fileName  
 */  
    private String domXmlParse(String fileName) {  
        String str="";  
        // xml文档创建工厂  
        DocumentBuilderFactory docFactory = DocumentBuilderFactory  
                .newInstance();  
        // xml文档创建实例  
        DocumentBuilder docBuilder;  
        // xml文档  
        Document doc = null;  
        InputStream inStream = null;  
        try {  
            docBuilder = docFactory.newDocumentBuilder();  
            // 从assets文件夹下获取文件 转换成输入流  
            inStream = this.getResources().getAssets().open(fileName);  
            doc = docBuilder.parse(inStream);  
            // 获取xml跟元素  
            Element rootEle = doc.getDocumentElement();  
            // 二级父元素的list列表  
            NodeList groupNode = rootEle.getElementsByTagName("group");  
            // NodeList childNode = rootEle.getElementsByTagName("person");  
            // 遍历Classe下所有的group  
            for (int i = 0; i < groupNode.getLength(); i++) {  
  
                Element groupEle = (Element) groupNode.item(i);  
                String groupName = groupEle.getAttribute("name");  
                String num = groupEle.getAttribute("num");  
                str =str+"name ="+groupName+" num = "+num+"\n";  
                  
                Log.e("xml", "name = " + groupName + "  num = " + num);  
  
//              NodeList personNode = groupNode.item(i).getChildNodes();  
                NodeList personNode = groupEle.getElementsByTagName("person");  
                // 遍历group下的所有person  
                for (int j = 0; j < personNode.getLength(); j++) {  
                    Element personEle = (Element) personNode.item(j);  
                    String name = personEle.getAttribute("name");  
                    String age = personEle.getAttribute("age");  
                    str =str+"personName ="+name+" personAge = "+age+"\n";  
                      
                    Log.e("xml", "name = " + name + "   age = " + age);  
  
                    Element chineseEle = (Element) personEle  
                            .getElementsByTagName("chinese").item(0);  
                    Element englistEle = (Element) personEle  
                            .getElementsByTagName("english").item(0);  
                    String chinese = chineseEle.getFirstChild().getNodeValue();  
                    String english = englistEle.getFirstChild().getNodeValue();  
                    str =str+"chinese = "+chinese+" english = "+english+"\n";  
                      
                    Log.e("xml", "chinese = " + chinese + "   english = "  
                            + english);  
                }  
            }  
  
        } catch (ParserConfigurationException e1) {  
            e1.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        } catch (SAXException e) {  
            e.printStackTrace();  
        }  
        return str;  
    }

définit un ensemble d'interfaces pour la version analysée d'un document XML. L'analyseur lit l'intégralité du document et crée une structure arborescente résidant en mémoire que le code peut ensuite manipuler à l'aide de l'interface DOM. Avantages : L'intégralité de l'arborescence du document est en mémoire, facile à utiliser ; prend en charge plusieurs fonctions telles que la suppression, la modification et le réarrangement ; Inconvénients : Le transfert de l'intégralité du document en mémoire (y compris les nœuds inutiles) fait perdre du temps et de l'espace ; il faut également accéder à ces données plusieurs fois ; les ressources matérielles sont suffisantes (mémoire, CPU).

Ce qui précède est le contenu d'Android dom analysant XML. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn