现在的位置: 首页 > 综合 > 正文

android 随手记 dom解析

2018年02月17日 ⁄ 综合 ⁄ 共 3255字 ⁄ 字号 评论关闭

// cache
    private void getjudgeinfo() {

        new Thread(new Runnable() {
            @Override
            public void run() {

                try {

                    // 1.得到DOM解析器的工厂实例
                    DocumentBuilderFactory dbfactory = DocumentBuilderFactory
                            .newInstance();
                    // 2.从DOM工厂获得DOM解析器
                    DocumentBuilder db = dbfactory.newDocumentBuilder();

                    // 4. 解析XML文档的输入流,得到一个Document
                    Document dom = db.parse(getResources().getAssets().open(
                            "advertisement.xml"));
                    String test = InputStreamTOString(getResources()
                            .getAssets().open("advertisement.xml"));

                    // Log.i("test", "test" + test.toString());
                    // (5)得到XML文档的根节点
                    Element docEle = dom.getDocumentElement();

                    // 获得地震信息的列表
                    nl = docEle.getElementsByTagName("advertisementWrapper");

                    if (nl != null && nl.getLength() > 0) {

                        for (int i = 0; i < nl.getLength(); i++) {
                            Element entry = (Element) nl.item(i);

                            Element title = (Element) entry
                                    .getElementsByTagName("title").item(0);
                            Element image = (Element) entry
                                    .getElementsByTagName("content").item(0);

                            String details = title.getFirstChild()
                                    .getNodeValue();
                            String imgurl = image.getFirstChild()
                                    .getNodeValue();

                            details = details.split(",")[0].trim();
                            imgurl = imgurl.split(",")[0].trim();

                            Log.i("test", "-----" + details);
                            Log.i("test", "-----" + imgurl);

                            nl2 = docEle.getElementsByTagName("images");

                            if (nl2 != null && nl2.getLength() > 0) {
                                for (int j = 0; j < nl.getLength(); j++) {
                                    Element item = (Element) nl2.item(j);
                                    NodeList nodelis = item.getChildNodes();

                                    Element id1 = (Element) item
                                            .getElementsByTagName("id").item(0);
                                    Element url1 = (Element) item
                                            .getElementsByTagName("url")
                                            .item(0);
                                    String id = id1.getFirstChild()
                                            .getNodeValue();
                                    String url = url1.getFirstChild()
                                            .getNodeValue();

                                    id = id.split(",")[0].trim();
                                    url = url.split(",")[0].trim();

                                    Log.i("test", "id-----" + id);
                                    Log.i("test", "url-----" + url);
                                }

                            }
                        }
                    }

                } catch (Exception e) {
                    Log.i("tag", "读取失败!");
                    e.printStackTrace();
                }
            }
        }).start();
    }

    public static String InputStreamTOString(InputStream in) throws Exception {

        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] data = new byte[BUFFER_SIZE];
        int count = -1;
        while ((count = in.read(data, 0, BUFFER_SIZE)) != -1)
            outStream.write(data, 0, count);

        data = null;
        return new String(outStream.toByteArray(), "ISO-8859-1");
    }

抱歉!评论已关闭.