三种xml解析方法

xml解析

<?xml version="1.0" encoding="UTF-8"?>

<Pandas>
  <panda>
    <name>金虎</name>
    <city>重庆</city>
    <age>2</age>
  </panda>
  <panda>
    <name>绩笑</name>
    <city>成都</city>
    <age>2</age>
  </panda>
  <panda>
    <name>雪宝</name>
    <city>上海</city>
    <age>2</age>
  </panda>
</Pandas>

dom4j解析(导入dom4j.jar包)

 public static void dom4J(File file) throws DocumentException, MalformedURLException {
        //获取SAXRead对象
        SAXReader reader=new SAXReader();
        //获取存放xml信息的Document对象
        org.dom4j.Document document=reader.read(file);
        //获取根结点
        Element root=document.getRootElement();
        //获取迭代器
        Iterator iterator = root.elementIterator();
        //遍历子节点
        while (iterator.hasNext()){
           //接收当前遍历节点
            Element element= (Element) iterator.next();
            //遍历当前节点子节点
            Iterator iterator1 = element.elementIterator();
            while (iterator1.hasNext()){
                Element next = (Element) iterator1.next();
                //打印当前节点存放值
                System.out.println(next.getData());
            }
        }

    }

dom解析(jdk自带无需导包,但是消耗内存,不推荐使用)

public static void dom(File file) throws ParserConfigurationException, IOException, SAXException {
   //特定步骤传入xml文件对象即可
    DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
    DocumentBuilder builder=factory.newDocumentBuilder();
    Document parse = builder.parse(file);
    
    //和js语法类似
    NodeList list=parse.getElementsByTagName("panda");
    //遍历节点
    for(int i=0;i<list.getLength();i++){
    //打印结点内文本信息
        System.out.println(list.item(i).getTextContent());
    }
}

jsoup解析(导入jsoup.jar)//比较喜欢用的

 /**
     * jsoup解析
     * @param file
     * @throws IOException
     */
    public static void readInJsoup(File file) throws IOException {
        org.jsoup.nodes.Document parse = Jsoup.parse(file, "utf-8");
        Elements pandas = parse.getElementsByTag("Pandas");
        ListIterator<org.jsoup.nodes.Element> elementListIterator = pandas.listIterator();
        while (elementListIterator.hasNext()){
            org.jsoup.nodes.Element child = elementListIterator.next();
            System.out.println(child.getElementsByTag("name").text());
            System.out.println(child.getElementsByTag("city").text());
            System.out.println(child.getElementsByTag("age").text());
        }
    }
全部评论

相关推荐

02-03 12:20
门头沟学院 Java
一天代码十万三:你这个简历东西太杂了,根本看不出你想投什么岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务