九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
xml字符串轉(zhuǎn)化成map
package test.commans.util;

import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
/**
*map和list的相互嵌套
*同名節(jié)點會放進list中
*/
public class XmlUtils {

/**
* @param args
*/
public static void main(String[] argv) {
sysData();
}
public static void sysData(){
String xmlStr = "<?xml version=\"1.0\"?><?xml-stylesheet type=\"text/xml\" href=\"whatweb.xsl\"?>"
+"<log>"
+"<target>"
        +"<uri>http://www.zoomeye.org</uri>"
        +"<http-status>200</http-status>"
        +"<plugin>"
                +"<name>Country</name>"
                +"<string>CHINA</string>"
                +"<modules>"
                        +"<module>CN</module>"
+"<module>E</module>"
                +"</modules>"
        +"</plugin>"
        +"<plugin>"
                +"<name>HTTPServer</name>"
                +"<string>nginx/1.5.2</string>"
        +"</plugin>"
        +"<plugin>"
                +"<name>Email</name>"
                +"<string>zoomeye@2x.png</string>"
           +"</plugin>"
        +"<plugin>"
                +"<name>Meta-Refresh-Redirect</name>"
                +"<string>/ie</string>"
        +"</plugin>"
        +"<plugin>"
                +"<name>IP</name>"
                +"<string>183.60.244.26</string>"
        +"</plugin>"
        +"<plugin>"
                +"<name>Title</name>"
                +"<string>ZoomEye | 鐘馗之眼 - 網(wǎng)絡(luò)空間搜索引擎</string>"
        +"</plugin>"
        +"<plugin>"
                +"<name>OpenSearch</name>"
                +"<string>/static/opensearch.xml</string>"
        +"</plugin>"
        +"<plugin>"
                +"<name>nginx</name>"
                +"<version>1.5.2</version>"
        +"</plugin>"
        +"<plugin>"
                +"<name>Mobile-Website</name>"
        +"</plugin>"
        +"<plugin>"
                +"<name>UncommonHeaders</name>"
                +"<string>x-frame-options</string>"
        +"</plugin>"
        +"<plugin>"
                +"<name>X-Frame-Options</name>"
                +"<string>SAMEORIGIN</string>"
        +"</plugin>"
        +"<plugin>"
                +"<name>HTML5</name>"
        +"</plugin>"
        +"<plugin>"
                +"<name>X-UA-Compatible</name>"
                +"<string>IE=edge</string>"
        +"</plugin>"
+"</target>"
// +"<target>"
// ....
// +"</target>"
+"</log>";
try {

StringReader sr = new StringReader(xmlStr.toString().replaceAll("string>", "desc>"));
InputSource is = new InputSource(sr);
Document doc = (new SAXBuilder()).build(is);
// String filterstr = "HTTPServer,Title,X-Frame-Options,UncommonHeaders,Meta-Refresh-Redirect,Country,www.baidu.com,200,X-UA-Compatible,Mobile-Website,IP";
String filterstr = "";
List m = getResultMap(doc,filterstr);

System.out.println(m);
} catch (Exception e) {
e.printStackTrace();
}
}

public static List getResultMap(Document doc,String filterStr){
       List maplist = new ArrayList();
        if(doc == null)
            return maplist;
        Element root = doc.getRootElement();
        for (Iterator iterator = root.getChildren().iterator(); iterator.hasNext();) {
        Map<String, Object> map = new HashMap<String, Object>();
            Element e = (Element) iterator.next();
            List list = e.getChildren();
            if(list.size() > 0){
                map.put(e.getName(), getChildMap(e,filterStr));
            }else
                map.put(e.getName(), e.getText());
            maplist.add(map);
        }
        return maplist;
    }  
      
  
    public static Map getChildMap(Element e,String filterStr){
        Map map = new HashMap();
        List list = e.getChildren();
        if(list.size() > 0){
            for (int i = 0;i < list.size(); i++) {
                Element iter = (Element) list.get(i);
                List mapList = new ArrayList();
                
                if(iter.getChildren().size() > 0){
                if(validateName(iter,filterStr)){//過濾在filterStr中包含的值
                Map m = getChildMap(iter,filterStr);
                    if(map.get(iter.getName()) != null){
                            Object obj = map.get(iter.getName());
                            if(!obj.getClass().getName().equals("java.util.ArrayList")){
                                mapList = new ArrayList();
                                mapList.add(obj);
                                mapList.add(m);
                            }
                            if(obj.getClass().getName().equals("java.util.ArrayList")){
                                mapList = (List) obj;
                                mapList.add(m);
                            }
                            map.put(iter.getName(), mapList);
                        }else
                            map.put(iter.getName(), m);
                    }
                    
                }else{
                if(validateName(iter,filterStr)){//過濾在filterStr中包含的值
                if(map.get(iter.getName()) != null){
                            Object obj = map.get(iter.getName());
                            if(!obj.getClass().getName().equals("java.util.ArrayList")){
                                mapList = new ArrayList();
                                mapList.add(obj);
                                mapList.add(iter.getText());
                            }
                            if(obj.getClass().getName().equals("java.util.ArrayList")){
                                mapList = (List) obj;
                                mapList.add(iter.getText());
                            }
                            map.put(iter.getName(), mapList); 
                        }else
                            map.put(iter.getName(), iter.getText());
                }
           
                }
            }
        }else
            map.put(e.getName(), e.getText());
        return map;
    }
    /**判斷含有子節(jié)點的name子節(jié)點的值或單個節(jié)點的值是否在filterContent中存在*/
    public static boolean validateName(Element iter,String filterContent){
    List children = iter.getChildren();
    if(children.size() > 0){
    for(int i = 0; i < children.size(); i++){
    Element child = (Element) children.get(i);
    if("name".equals(child.getName()) && filterContent.contains(child.getText())){
    return false;
    }
    }
    }else{
    if(filterContent.contains(iter.getText())){
return false;
}
    }
    return true;
    }
}


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java xml轉(zhuǎn)map map轉(zhuǎn)xml 帶屬性
Java三大類集合中各自的方法、屬性,和集合的如何遍歷
Android五種數(shù)據(jù)傳遞方法匯總Intent
jquery動態(tài)實現(xiàn)填充下拉框
Java中的集合框架大總結(jié)
Map類型取值方法
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服