java利用dom4j解析xml 需要的jar包:
dom4j官方网站在 http://www.dom4j.org/
下载dom4j-1.6.1.zip
解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar(如果不导入这个架包程序可以执行出结果,但最后会报异常)
将相关jar包引入后,实际解析操作如下:
1.要解析的xml文件province.xml:
2、具体解析程序如下:
package Demo2;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XMLTest01 {
public static void main(String args[]) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("D:/province.xml"));
Element rootElm = document.getRootElement();
//Element root1Elm = rootElm.element("city");
@SuppressWarnings("rawtypes")
List nodes = rootElm.elements("city");
for (@SuppressWarnings("rawtypes")
Iterator it = nodes.iterator(); it.hasNext();) {
Element elm = (Element) it.next();
System.out.println("quName:" + elm.attributeValue("quName")
+ " pyName:" + elm.attributeValue("pyName") + " cityname:"
+ elm.attributeValue("cityname") + " state1:"
+ elm.attributeValue("state1") + " state2:"
+ elm.attributeValue("state2"));
}
try {
Document doc = reader.read(new File("D:/province.xml"));
@SuppressWarnings("rawtypes")
List projects = doc.selectNodes("china/city");
@SuppressWarnings("rawtypes")
Iterator it = projects.iterator();
while (it.hasNext()) {
Element elm = (Element) it.next();
System.out.println("quName:" + elm.attributeValue("quName")
+ " pyName:" + elm.attributeValue("pyName")
+ " cityname:" + elm.attributeValue("cityname")
+ " state1:" + elm.attributeValue("state1")
+ " state2:" + elm.attributeValue("state2"));
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
3、项目中需要导入的架包:
4、运行结果如下图所示: