JAVA之SAX解析XML格式数据--Jdom.jar

package com.yldyyn.test;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

import java.io.IOException;
import java.io.StringReader;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Author: yld
 * @Date: 2018-10-30 09:01
 * @Version 1.0
 */
public class DuXmlDoc {
    public static void main(String[] args) {
        DuXmlDoc duXmlDoc = new DuXmlDoc();

    String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
            "<Result xmlns=\"http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\">"+
            "<row resultcount=\"1\">"+
            "<users_id>1001     </users_id>"+
            "<users_name>wangwei   </users_name>"+
            "<users_group>80        </users_group>"+
            "<users_address>1001号   </users_address>"+
            "</row>"+
            "<row resultcount=\"1\">"+
            "<users_id>1002     </users_id>"+
            "<users_name>wangwei   </users_name>"+
            "<users_group>80        </users_group>"+
            "<users_address>1002号   </users_address>"+
            "</row>"+
            "</Result>";
    duXmlDoc.xmlElements(xml);
}



public List xmlElements(String xmlDoc){
    if (xmlDoc!=null && !xmlDoc.equals("")){
        Pattern pattern = Pattern.compile("\r\n");
        Matcher matcher = pattern.matcher(xmlDoc);
        xmlDoc = matcher.replaceAll("");
    }
    //创建一个新的字符串
    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;
        for (int i = 0; i < jiedian.size(); i++) {
            //循环 依次得到子元素
            et = (Element) jiedian.get(i);
            System.out.println(et.getChild("users_id",ns).getText());
            System.out.println(et.getChild("users_address",ns).getText());
        }
        et = (Element)jiedian.get(0);
        List zjiedian = et.getChildren();
        for (int i = 0; i < zjiedian.size(); i++) {
            Element xet = (Element) zjiedian.get(i);
            System.out.println(xet.getName());
        }


    }catch (JDOMException exception){
        exception.printStackTrace();
    }catch (IOException e){
        e.printStackTrace();
    }
    return null;
}

}
本文摘自某博客大神的,如果涉嫌侵权,马上删除,并道歉

猜你喜欢

转载自blog.csdn.net/yinlidong77/article/details/83539141