dom4j解析xml

解析xml文档

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.InputStream; 
import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
public class Dom4jParseXmlDemo { 
public void parseXml01(){ 
try { 
//将src下的xml文件转换为输入流(两种方法导入) 
// InputStream inputStream = new FileInputStream(new File("D:\\Workspaces\\MyEclipse 10\\Test\\src\\test.xml")) ; 
InputStream inputStream = this.getClass().getResourceAsStream("/test.xml") ; 
//创建SAXReader对象,读取xml 
SAXReader saxReader = new SAXReader() ; 
Document document = saxReader.read(inputStream) ; 
Element rootElement = document.getRootElement() ; 
System.out.println("根节点名称: " + rootElement.getName()); 
System.out.println("根节点有多少属性: " + rootElement.attributeCount()); 
System.out.println("根节点id属性的值: " + rootElement.attributeValue("id")); 
//如果xml里面有换行,显示出来的文本也会换行 
System.out.println("根节点内文本: " + rootElement.getText()); 
//去掉的是标签与标签之间的tab键和换行符等等,不是内容前后的空格 
System.out.println("根节点内文本1: " + rootElement.getTextTrim()); 
//返回当前节点递归所有子节点的文本信息。 
System.out.println("根节点子节点文本内容: " + rootElement.getStringValue()); 

Element element = rootElement.element("message") ; 
if(element!=null){ 
System.out.println("子节点的文本: " + element.getText()); 
} 
//修改节点名称和文本内容 
rootElement.setName("root") ; 
System.out.println("修改后的节点名称: " + rootElement.getName()); 
rootElement.setText("text") ; 
System.out.println("根节点修改之后的文本: " + rootElement.getText()); 
}catch(DocumentException e){ 
e.printStackTrace() ; 
} 
} 
public static void main(String[] args) { 
Dom4jParseXmlDemo demo = new Dom4jParseXmlDemo() ; 
demo.parseXml01() ; 
} 
} 

获取document文档对象

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.InputStream; 
import java.util.Iterator; 
import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
public class Dom4jParseXmlDemo { 
public void parseXml01(){ 
try { 
//将src下的xml文件转换为输入流(两种方法导入) 
// InputStream inputStream = new FileInputStream(new File("D:\\Workspaces\\MyEclipse 10\\Test\\src\\test.xml")) ; 
InputStream inputStream = this.getClass().getResourceAsStream("/test.xml") ; 
//创建SAXReader对象,读取xml 
SAXReader saxReader = new SAXReader() ; 
Document document = saxReader.read(inputStream) ; 
Element rootElement = document.getRootElement() ; 
Iterator<Element> it = rootElement.elements("body").iterator() ; 
while(it.hasNext()){ 
Element bodyElement = it.next() ; 
Element nameElement = bodyElement.element("name") ; 
System.out.println(nameElement.getName() + ":" + nameElement.getText()); 
Element sexElement = bodyElement.element("sex") ; 
System.out.println(sexElement.getName() + ":" + sexElement.getText()); 
Element addressElement = bodyElement.element("address") ; 
System.out.println(addressElement.getName() + ":" + addressElement.getText()); 
} 
}catch(DocumentException e){ 
e.printStackTrace() ; 
} 
} 
public static void main(String[] args) { 
Dom4jParseXmlDemo demo = new Dom4jParseXmlDemo() ; 
demo.parseXml01() ; 
} 
} 

获取复杂的xml文档

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.InputStream; 
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 Dom4jParseXmlDemo { 
public void parseXml01(){ 
try { 
//将src下的xml文件转换为输入流(两种方法导入) 
// InputStream inputStream = new FileInputStream(new File("D:\\Workspaces\\MyEclipse 10\\Test\\src\\test.xml")) ; 
InputStream inputStream = this.getClass().getResourceAsStream("/test.xml") ; 
//创建SAXReader对象,读取xml 
SAXReader saxReader = new SAXReader() ; 
Document document = saxReader.read(inputStream) ; 
Element rootElement = document.getRootElement() ; 
if(rootElement.elements("chingcloud") != null){ 
@SuppressWarnings("unchecked") 
List<Element> elementList = rootElement.elements("chingcloud") ; 
for(Element element:elementList){ 
if(!element.getTextTrim().equals("")){ 
System.out.println("【1】" + element.getTextTrim()); 
}else{ 
if(element.attributeValue("id").equals("a")){ 
Element nameElement = element.element("name") ; 
System.out.println("  【2】" + nameElement.getName() + ":" + nameElement.getText()); 
Element addressElement = element.element("address") ; 
System.out.println("  【2】" + addressElement.getName() + ":" + addressElement.getText()); 
Element descriptElement = element.element("descript") ; 
System.out.println("  【2】" + descriptElement.getName() + ":" + descriptElement.getText()); 
}else if(element.attributeValue("id").equals("b")){ 
Element countElement = element.element("count") ; 
System.out.println("    【3】" + countElement.getName() + ":" + countElement.getText()); 
Element moneyElement = element.element("money") ; 
System.out.println("    【3】" + moneyElement.getName() + ":" + moneyElement.getText()); 
@SuppressWarnings("unchecked") 
List<Element> subElements = element.elements("chingcloud") ; 
int len = subElements.size() ; 
for(int i=0;i<len;i++){ 
Element subElement = subElements.get(i) ; 
Element nameSubElement = subElement.element("name") ; 
System.out.println("      【" + (i+4) + "】" + nameSubElement.getName() + ":" + nameSubElement.getText()) ; 
Element sexSubElement = subElement.element("sex") ; 
System.out.println("      【" + (i+4) + "】" + sexSubElement.getName() + ":" + sexSubElement.getText()) ; 
Element ageSubElement = subElement.element("age") ; 
System.out.println("      【" + (i+4) + "】" + ageSubElement.getName() + ":" + ageSubElement.getText()); 
} 
} 

} 
} 
} 
}catch(DocumentException e){ 
e.printStackTrace() ; 
} 
} 
public static void main(String[] args) { 
Dom4jParseXmlDemo demo = new Dom4jParseXmlDemo() ; 
demo.parseXml01() ; 
} 
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值