中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android dom如何解析xml

發布時間:2021-01-27 09:34:16 來源:億速云 閱讀:156 作者:小新 欄目:編程語言

這篇文章主要介紹了 android dom如何解析xml,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

首先自己創建一個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>

解析出來的結果顯示如下圖:

android dom如何解析xml

下面來分析源代碼:

/**  
 * 用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;  
    }

為 XML 文檔的已解析版本定義了一組接口。解析器讀入整個文檔,然后構建一個駐留內存的樹結構,然后代碼就可以使用 DOM 接口來操作這個樹結構。優點:整個文檔樹在內存中,便于操作;支持刪除、修改、重新排列等多種功能;缺點:將整個文檔調入內存(包括無用的節點),浪費時間和空間;使用場合:一旦解析了文檔還需多次訪問這些數據;硬件資源充足(內存、CPU)。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“ android dom如何解析xml”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家港市| 湟中县| 河东区| 贺兰县| 公主岭市| 柳河县| 环江| 靖远县| 兴仁县| 郎溪县| 宁乡县| 新巴尔虎左旗| 灯塔市| 南和县| 乐陵市| 隆化县| 芦溪县| 修文县| 长海县| 文登市| 白水县| 板桥市| 磴口县| 枞阳县| 平湖市| 辉南县| 吴江市| 辽源市| 嘉义市| 筠连县| 登封市| 南丰县| 安国市| 东丽区| 阳新县| 岢岚县| 阿合奇县| 洞口县| 左权县| 京山县| 伊金霍洛旗|