大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
DOM4J是dom4j.org出品的一个开源XML解析包。Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,採用了Java集合框架并全然支持DOM,SAX和JAXP。Hibernate也是用它来读写配置文件的。
一、DOM4j的下载
dom4j-1.6.1.jar 下载:http://sourceforge.net/directory/os:windows/freshness:recently-updated/?q=dom4j
二、DOM4j解析XML文件
AirPortLine.xml文件例如以下:<?xml version=”1.0″ encoding=”UTF-8″?>
1
1
武汉
2
石家庄
3
北京
2
1
重庆
2
武汉
3
上海
4
东京
3
1
上海
2
纽约
Java DOM4J解析XML代码例如以下:package com.hsinghsu.testXML;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class testDOM4J {
public static void main(String[] args) {
try {
File file = new File(“AirPortLine.xml”);
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
parseDOM4J(doc);// 解析XML文档
//String xmlStr = getStringFromXML(doc);// 将XML文档转换为String
//System.out.println(“xmlStr:” + xmlStr);
//String str = “<?xml version=’1.0′ encoding=’UTF-8′?>11武汉2石家庄3北京21重庆2武汉3上海4东京31上海2纽约”;
//Document document = getXMLDocFromString(str);// 将String转换为XML文档
} catch (Exception e) {
System.out.println(“Can’t read the file”);
}
}
// 解析XML文档
private static void parseDOM4J(Document doc) {
Element root = doc.getRootElement();
for (Iterator iter = root.elementIterator(“line”); iter.hasNext();) {// 遍历line结点的全部子节点,也能够使用root.elementIterator()
Element element = (Element) iter.next();
Attribute lidAttr = element.attribute(“lid”);// 获取元素的属性
String lid = lidAttr.getValue();// 获取元素的属性值
Attribute numAttr = element.attribute(“num”);// 获取元素的属性
String num = numAttr.getValue();// 获取元素的属性值
String id = element.elementText(“id”);// 获取元素下的值
System.out.println(“==lid:” + lid);
System.out.println(“==num:” + num);
System.out.println(“==路线id:” + id);
for (Iterator iterInner = element.elementIterator(“station”); iterInner.hasNext();) { // 遍历station结点的全部子节点
Element elementInner = (Element) iterInner.next();
String sid = elementInner.elementText(“sid”);// 获取元素下的值
String sname = elementInner.elementText(“sname”);// 获取元素下的值
System.out.println(“—-站–sid:” + sid);
System.out.println(“—-站–sname:” + sname);
}
}
}
// 将XML文档转换为String
private static String getStringFromXML(Document doc) {
return doc.asXML();
}
// 将String转换为XML文档
private static Document getXMLDocFromString(String str) {
try {
return DocumentHelper.parseText(str);
} catch (DocumentException e) {
e.printStackTrace();
return null;
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159391.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...