解析XML:即从XML文件中读取数据
*解析XML
FileInputStream inputStream = new FileInputStream(xmlFile);
SAXReader xmlReader = new SAXReader(); // SAXReader 用于解析XML
Document x_doc = xmlReader.read(inputStream);// 得到一个Document对象
inputStream.close(); // 得到Document后即可关闭文件
其中:SAXReader是dom4j提供的XML解析器,可以读取文件中的内容,转成一个Document
*取得元素的值
假设从<parent>元素下查找子元素<id>的值,共有三种方法
*注意事项
1)取值时注意两边的空白
String name=x_root.elementTest("name").trim();
2)由于XML只存储文本,所以在读取Test之后,需要自己转成int,boolean或其他类型的变量
例如:
s.id = Integer.valueOf( ex.element("id").getText());
3)取值时一般要注意null的判断
Element sex=x_root.element("sex");
if(sex!=null)
{
String text=sex.getText();
s.sex=text.equals("male");
}
4)注意关闭文件句柄 (高级话题)
在Java程序里,所有的文件FileInputStream/FileOutputStream在用完之后,都得确保close掉。否则会引起句柄泄露。
public static Document parseXmlDocument(File xmlFile) throws Exception
{
FileInputStream inputStream = new FileInputStream(xmlFile);
try {
SAXReader xmlReader = new SAXReader();
Document doc = xmlReader.read(inputStream);
return doc;
}finally {
// 确保关闭文件句柄
try{ inputStream.close(); }catch(Exception e) {}
}
}