【问题标题】:Android-How to get the content of the inner tag of xml in androidAndroid-如何在android中获取xml内标签的内容
【发布时间】:2016-07-20 14:46:31
【问题描述】:

我从一个包含以下标签的 url 中获得了一个 xml, http://www.ZZZZZZZZZZZZz.jpg' width='90' height='62'>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

我需要获取 img src='http://www.ZZZZZZZZZZZZz.jpg' 中的链接,并且描述中的内容分别在字符串中说 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 我该如何实现它。

我已经写了一个代码,但它没有获取图像的 url

private void ProcessXml(Document data) {
    if (data!=null){
       feedList=new ArrayList<>();
        Element root=data.getDocumentElement();
        Node channel=root.getChildNodes().item(1);
        NodeList items=channel.getChildNodes();
        for (int i=0;i<items.getLength();i++){
            Node currentChild=items.item(i);
            if (currentChild.getNodeName().equalsIgnoreCase("item")){
                GetterSetter getterSetter=new GetterSetter();
                NodeList itemchild=currentChild.getChildNodes();
                for (int j=0;j<itemchild.getLength();j++){
                    Node current=itemchild.item(j);
                    Log.d("aaa", "ProcessXml: ="+current.getTextContent());
                    if (current.getNodeName().equalsIgnoreCase("title")){
                        getterSetter.setTitle(current.getTextContent());
                    }
                    else            if(current.getNodeName().equalsIgnoreCase("description")){
                             getterSetter.setDescription(current.getTextContent());
                    }
                    else if (current.getNodeName().equalsIgnoreCase("link")){
                        getterSetter.setLink(current.getTextContent());
                    }
                    else if (current.getNodeName().equalsIgnoreCase("pubDate")){
                        getterSetter.setPubDate(current.getTextContent());
                    }else if (current.getNodeName().equalsIgnoreCase("enclosure url")){
                        String url=current.getAttributes().item(0).getTextContent();
                        getterSetter.setThumbnail(url);
                    }

                   }
                feedList.add(getterSetter);
                Log.d("qqq", "thumbnail: ="+getterSetter.getThumbnail());


            }
        }
    }
}

【问题讨论】:

    标签: android xml-parsing feed domparser


    【解决方案1】:

    Jsoup 库可能会有所帮助。

    在你的 build.gradle 中:

    dependencies {
        ...
        compile 'org.jsoup:jsoup:1.9.1'
        ...
    }
    

    像这样解析:

    String html = "<img src='http://www.ZZZZZZZZZZZZz.jpg' width='90' height='62'>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
    
    Document doc = Jsoup.parse(html);
    String imgUrl = doc.select("img").attr("src"); //http://www.ZZZZZZZZZZZZz.jpg
    String description = doc.text(); //AAAAAAAAAAAA...
    

    【讨论】:

    • 谢谢,但是 doc.select 和 doc.text 不起作用
    • oops.. 如果您可以使用 jsoup 发布您的代码,请添加到您的答案中。
    猜你喜欢
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多