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