XML解析-DOM4j

xml 是擴展標記語言 extension marked languange  .

作用:

1 可以作爲配置文件。

2 不依賴任何平臺提供數據支持,可以和http超文本提供數據,
的作用,簡單理解爲xml是一種數據記錄格式。


解析xml文件:

方法:

常見的三種XML解析方法,即DOM解析、SAX解析、DOM4J解析。

這裏只介紹最簡單常用效果最好的DOM4J解析。

eg:emplyees.xml

<?xml version="1.0" encoding="UTF-8"?>
<emplyees>
<emplyee><name>jack</name><sex>male</sex><age>30</age></emplyee>
<emplyee><name>litao</name><sex>male</sex><age>12</age></emplyee>
<emplyee><name>lucy</name><sex>fmale</sex><age>23</age></emplyee>
<student><name>tom</name><sex>fmale</sex><age>30</age></student>
</emplyees>

--------------------------------------------------------

需要導入jar包:

dom4j-1.6.1.jar

代碼演示:

public class XmlDom4jTest
{
    /**
     * dom4j 創建xml文件
     * <功能詳細描述>
     * @param path
     * @see [類、類#方法、類#成員]
     */
    public void creatXmlFile(String path)
    {
        Document document = DocumentHelper.createDocument();
        Element emplyees = document.addElement("emplyees");
        
        Element emplyee = emplyees.addElement("emplyee");
        Element name = emplyee.addElement("name");
        name.addText("jack");
        Element sex = emplyee.addElement("sex");
        sex.addText("male");
        Element age = emplyee.addElement("age");
        age.addText("30");
        
        //創建xml文件
        try
        {
            Writer writer = new FileWriter(path);
            XMLWriter xmlWriter = new XMLWriter(writer);
            xmlWriter.write(document);
            xmlWriter.close();
            writer.close();
            System.out.println("The file has been created successfully!");
        }
        catch (IOException e)
        {
            System.out.println(e.getMessage());
        }   
    }
    /**
     * dom4j 解析xml文件
     * <功能詳細描述>
     * @param path
     * @see [類、類#方法、類#成員]
     */
    @SuppressWarnings("rawtypes")
    public void parserXml(String path)
    {
        File inputXmlFile = new File(path);
        SAXReader reader = new SAXReader();
        try
        {
            Document document = reader.read(inputXmlFile);
            Element employees = document.getRootElement();
            for (Iterator i = employees.elementIterator(); i.hasNext();)
            {
                Element employee = (Element)i.next();
                System.out.println(employee.getName()+":"+employee.getText());
                for (Iterator j = employee.elementIterator(); j.hasNext();)
                {
                    Element node = (Element)j.next();
                    System.out.println(node.getName() + ":" + node.getText());
                }
            }
        }
        catch (DocumentException e)
        {
            System.out.println(e.getMessage());
        }
    }
    
    public static void main(String[] args)
    {
        XmlDom4jTest xmlDom4j = new XmlDom4jTest();
        //        xmlDom4j.creatXmlFile("E:/test/employees.xml");
        xmlDom4j.parserXml("E:/test/employees.xml");
    }
}

result:

emplyee:
name:jack
sex:male
age:30
emplyee:
name:litao
sex:male
age:12
emplyee:
name:lucy
sex:fmale
age:23
student:
name:tom
sex:fmale
age:30



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章