java后台解析获取到的xml格式字符串

当从页面上爬取数据时往往会得到xml格式的字符串返回值,此时解析该字符传获取自己需要的值往往是比较头疼的事,一下方式是在一个项目中用到的解析xml格式字符串的实例,记录下以便以后借鉴使用:

	    import org.jdom2.Document;
	    import org.jdom2.Element;
	    import org.jdom2.JDOMException;
	    import org.jdom2.Namespace;
	    import org.jdom2.input.SAXBuilder;
       public static void main(String[] args){
        	FmJkfwServiceImpl doc = new FmJkfwServiceImpl();
            String xml = ""+
            ""+      		
        "
"+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ "
社会信用代码(纳税人识别号):915xxxxxxJ纳税人名称:四川省xxxx有限公司
纳税人状态:正常课征主体登记类型:单位纳税人税务登记
注册地址:眉山市xxxx生产经营地址:眉山市xxxx
法定代表人姓名:孙xx法定代表人身份证件类型:居民身份证法定代表人身份证号码:511xxxxxxx18
登记日期:2016-08-1主管税务机关:国家税务总局xxxxx税务局
主管税务所(科、分局):国家税务总xxxx税务分局税收管理员:李xx
街道乡镇:xxx镇经营范围:销售:预包装食品、散装食品、乳制品(不含婴幼儿配方乳粉)、农副产品、化工产品(不含危险化学品)、管道配件、机电设备、五金交电、文化办公用品、金属材料。(依法须经批准的项目,经相关部门批准后方可开展经营活动)
营改增纳税人类型:会计制度(准则):小企业会计准则办证方式:国税独立办证
核算方式:独立核算自负盈亏国有控股类型:国有投资比例:0
自然人投资比例:0外资投资比例:0注册资本:1000000
"+ "
"+ "
"+ "
"+ "
"; doc.xmlElements(xml); }

解析xml:

 public Map xmlElements(String xmlDoc) {
    	Map swdjxxMap = new HashMap();
        //创建一个新的字符串
        StringReader read = new StringReader(xmlDoc);
        //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
        InputSource source = new InputSource(read);
        //创建一个新的SAXBuilder
        SAXBuilder sb = new SAXBuilder();
        try {
            //通过输入源构造一个Document
            Document doc = sb.build(source);
            //取的根元素
            Element root = doc.getRootElement();
            //System.out.println(root.getName());//输出根元素的名称(测试)
            //得到根元素所有子元素的集合
            List jiedian = root.getChildren();
            //获得XML中的命名空间(XML中未定义可不写)
            Namespace ns = root.getNamespace();
            Element et = null;
            List swDjxxList=new ArrayList();
           for(int i=0;i0){
        	   swdjxxMap= makeData(swDjxxList);//提取数据 
           }else{
        	   
           }          
        } catch (JDOMException e) {
            // TODO 自动生成 catch 块
            e.printStackTrace();
        } catch (IOException e) {
            // TODO 自动生成 catch 块
            e.printStackTrace();
        }
        return swdjxxMap;
    }

抽取自己想要的数据:

public Map makeData(List listStr) {
	Map swdjxxMap = new HashMap();
	for(int i=0;i

你可能感兴趣的:(java开发类,java解析xml格式字符串)