码迷,mamicode.com
首页 > 其他好文 > 详细

xml的两种解析方式

时间:2015-07-05 13:47:28      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:dom4j   xml解析   

xml解析是日常项目中用到比较多的技能,无论是配置参数或者数据都可以保存在xml文件中,同时也可以将xml作为传输数据的一种格式。本文将介绍两种基本解析方式:xml字符串解析和xml文件解析。

xml字符串解析

package com.discover.parse;

import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

/**
 * @author 民团司令
 *
 */
public class XmlStringParser {
    public static void main(String[] args){
        String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
            +"<root><student><name>jim</name><age>12</age></student>"
            +"<student><name>jim</name><age>12</age></student></root>";
        try {
            Document document = DocumentHelper.parseText(xml);
            Element root = document.getRootElement();
            Iterator stuIterator = root.elementIterator("student");
            while (stuIterator.hasNext()) {
                Element student = (Element)stuIterator.next();
                String name = student.elementTextTrim("name");
                String age = student.elementTextTrim("age");
                System.out.println("name:"+name+",age:"+age);
            }
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
xml文件解析

package com.discover.parse;

import java.io.File;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * @author 民团司令
 *
 */
public class XmlFileParser {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String xmlFilePath = XmlFileParser.class.getResource("").getPath()+"stuInfo.xml";
        File xmlFile = new File(xmlFilePath);
        if(xmlFile.exists())
        {
            SAXReader reader = new SAXReader();
            try {
                Document document = reader.read(xmlFile);
                Element root = document.getRootElement();
                Iterator stuIterator = root.elementIterator("student");
                while (stuIterator.hasNext()) {
                    Element student = (Element)stuIterator.next();
                    String name = student.elementTextTrim("name");
                    String age = student.elementTextTrim("age");
                    System.out.println("name:"+name+",age:"+age);
                }
            } catch (DocumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

两种解析方式都是采用的dom4j实现,该jar可以在如下官网下载

http://www.dom4j.org/dom4j-1.6.1/

版权声明:本文为博主原创文章,未经博主允许不得转载。

xml的两种解析方式

标签:dom4j   xml解析   

原文地址:http://blog.csdn.net/dotnetstudio/article/details/46762561

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!