xml的兩種解析方式
阿新 • • 發佈:2017-06-15
name 字符 system main ner exce pub void ref
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(); } } }
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(); } } } }
依據讀者的要求附上第2種方式的stuInfo.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>
兩種解析方式都是採用的dom4j實現,該jar能夠在例如以下官網下載
http://www.dom4j.org/dom4j-1.6.1/
xml的兩種解析方式