Android--<String>XX</String>类型的XML解析

转载请注明出处:http://blog.csdn.net/skyunicorn/article/details/51003286,谢谢


有时候我们遇到<string xmlns="http://tempuri.org/">坑你,就是坑你</string>这种情况怎么办?

按照我们上次讲的PULL解析,对这个完全无效啊,这个哪有上次我们说的那些根元素节点,子元素节点,属性之类的东西?

别急,下面给出解析方法:

                HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
                con.setRequestMethod("GET");   //设置连接为GET
                con.setConnectTimeout(5000);  //连接超时的时间
             
                int i = con.getResponseCode();  //获取连接状态
                if (i == 200) {  //状态码为200时连接成功
                    InputStream is = con.getInputStream();
                    parser.setInput(is, "UTF-8");  //将输入流置为UTF-8格式
                    int eventType = parser.getEventType();

                    //解析XML
                    while (eventType != XmlPullParser.END_DOCUMENT) {
                        switch (eventType) {
                            case XmlPullParser.START_DOCUMENT:  //文档开始事件,可以进行数据的初始化处理
                                break;

                            case XmlPullParser.START_TAG:  //开始元素事件
                                String name = parser.getName();
                                if (name.equalsIgnoreCase("string")) {
                                    str = parser.nextText();
                                }
                                break;
                            case XmlPullParser.END_TAG:  //结束元素事件
                                break;
                        }
                        eventType = parser.next();
                    }
                    is.close();


这样就可以了取出来数据了,用Log.i(TAG,str);就可以查看取出的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下代码将该XML转换为Map对象: ```java import java.io.StringReader; import java.util.HashMap; import java.util.Map; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class XmlToMap { public static void main(String[] args) throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <java version=\"1.6.0_26\" class=\"java.beans.XMLDecoder\"> <object class=\"java.util.HashMap\"> <void method=\"put\"> <string>att_20160719180419281NEk9</string> <string>cx</string> </void> <void method=\"put\"> <string>att_20160511094248589ZKYq</string> <string>cnmm</string> </void> <void method=\"put\"> <string>att_20161018153614188aTus</string> <string>zsx;fj</string> </void> <void method=\"put\"> <string>att_20160422110906494XuEf</string> <null/> </void> <void method=\"put\"> <string>att_20160511130210612UULE</string> <string>fjyxapp;jjgjapp;wx;jd;dxjg;tb;wsjy</string> </void> <void method=\"put\"> <string>att_20160719180542840LnFm</string> <string></string> </void> <void method=\"put\"> <string>att_20160511130025203ssle</string> <string>zdgsszta</string> </void> <void method=\"put\"> <string>att_20160810131359346N0ra</string> <string>szjys</string> </void> <void method=\"put\"> <string>att_20160511130031927equg</string> <string></string> </void> <void method=\"put\"> <string>att_20160422110456036qp7Y</string> <null/> </void> <void method=\"put\"> <string>att_20160422110543585f7iI</string> <string>cpjbxx</string> </void> </object> </java>"; Map<String, String> map = xmlToMap(xml); System.out.println(map); } public static Map<String, String> xmlToMap(String xml) throws Exception { Map<String, String> map = new HashMap<>(); SAXReader reader = new SAXReader(); Document document = reader.read(new StringReader(xml)); Element root = document.getRootElement().element("object"); for (Element element : root.elements("void")) { Element keyElement = element.element("string"); Element valueElement = element.elements().get(1); String key = keyElement.getText(); String value = valueElement == null ? null : valueElement.getText(); map.put(key, value); } return map; } } ``` 该代码使用Dom4j库解析XML,并将其转换为Map对象。输出结果为: ``` {att_20160719180419281NEk9=cx, att_20160511094248589ZKYq=cnmm, att_20161018153614188aTus=zsx;fj, att_20160422110906494XuEf=null, att_20160511130210612UULE=fjyxapp;jjgjapp;wx;jd;dxjg;tb;wsjy, att_20160719180542840LnFm=, att_20160511130025203ssle=zdgsszta, att_20160810131359346N0ra=szjys, att_20160511130031927equg=, att_20160422110456036qp7Y=null, att_20160422110543585f7iI=cpjbxx} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值