您的位置:首页 > 其它

dom4j解析xml

2015-11-23 16:06 435 查看
解析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() ;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml