dom4j 解析xml
来源:互联网 发布:淘宝卖家改价要收费吗 编辑:程序博客网 时间:2024/06/18 13:45
package common.utils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* xml 解析工具类 返回list集合
* 使用jar包为 dom4j-2.1.0.jar
* @author Administrator
*
*/
public class AnalysisXmlUtil {
private List<Object> xmllist = new ArrayList<>();
public static void main(String[] args) {
try {
AnalysisXmlUtil a = new AnalysisXmlUtil();
a.ReadXml("D:\\LocList.xml");
List<Object> l = a.xmllist;
System.out.println(l.get(1));
System.out.println(l.size());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 读取xml文件
* @param filepath 文件路径
* @throws Exception
*/
public void ReadXml(String filepath) throws Exception {
// 创建saxreader对象
SAXReader reader = new SAXReader();
// 读取一个文件,把这个文件转换成Document对象
Document document = reader.read(new File(filepath));
// 获取根元素
Element root = document.getRootElement();
listNodes(root);
// 把文档转换字符串
/*
* String docXmlText = document.asXML(); System.out.println(docXmlText);
* System.out.println("---------------------------"); // csdn元素标签根转换的内容
* String rootXmlText = root.asXML(); System.out.println(rootXmlText);
* System.out.println("---------------------------");
*/
// 获取java元素标签 内的内容
/*
* Element e = root.element("CountryRegion");
* System.out.println(e.asXML());
*/
}
/**
* 创建一个document对象 往document对象中添加节点元素 转存为xml文件
*
* @throws Exception
*/
public void WriteXml() throws Exception {
Document document = DocumentHelper.createDocument();// 创建根节点
Element root = document.addElement("csdn");
Element java = root.addElement("java");
java.setText("java");
Element ios = root.addElement("ios");
ios.setText("ios");
writerNewFile(document);
}
/**
* 把一个文本字符串转换Document对象
*
* @throws Exception
*/
public void StringToDocument() throws Exception {
String text = "<csdn><java>Java</java><net>Net</net></csdn>";
Document document = DocumentHelper.parseText(text);
Element e = document.getRootElement();
System.out.println(e.getName());
writerNewFile(document);
}
/**
* 把document对象写入新的文件
*
* @param document
* @throws Exception
*/
public void writerNewFile(Document document) throws Exception {
// 紧凑的格式
// OutputFormat format = OutputFormat.createCompactFormat();
// 排版缩进的格式
OutputFormat format = OutputFormat.createPrettyPrint();
// 设置编码
format.setEncoding("UTF-8");
// 创建XMLWriter对象,指定了写出文件及编码格式
// XMLWriter writer = new XMLWriter(new FileWriter(new
// File("src//a.xml")),format);
XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(new File("src//c.xml")), "UTF-8"),
format);
// 写入
writer.write(document);
// 立即写入
writer.flush();
// 关闭操作
writer.close();
}
/**
* 遍历所有xml节点
* @param node
*/
public void listNodes(Element node) {
String s = node.getName();
// System.out.println("当前节点的名称:" +s);
// 首先获取当前节点的所有属性节点
s = "nodeName=" + s;
List<Attribute> list = node.attributes();
// 遍历属性节点
String t = "";
for (Attribute attribute : list) {
// System.out.println("属性" + attribute.getName() + ":" +
// attribute.getValue());
t += "," + attribute.getName() + "=" + attribute.getValue();
}
// 如果当前节点内容不为空,则输出
if (!(node.getTextTrim().equals(""))) {
System.out.println(node.getName() + ":" + node.getText());
t = ",value=" + node.getText();
}
// xmllist.add(s);
xmllist.add(s + t);
// 同时迭代当前节点下面的所有子节点
// 使用递归
Iterator<Element> iterator = node.elementIterator();
while (iterator.hasNext()) {
Element e = iterator.next();
listNodes(e);
}
}
}
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* xml 解析工具类 返回list集合
* 使用jar包为 dom4j-2.1.0.jar
* @author Administrator
*
*/
public class AnalysisXmlUtil {
private List<Object> xmllist = new ArrayList<>();
public static void main(String[] args) {
try {
AnalysisXmlUtil a = new AnalysisXmlUtil();
a.ReadXml("D:\\LocList.xml");
List<Object> l = a.xmllist;
System.out.println(l.get(1));
System.out.println(l.size());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 读取xml文件
* @param filepath 文件路径
* @throws Exception
*/
public void ReadXml(String filepath) throws Exception {
// 创建saxreader对象
SAXReader reader = new SAXReader();
// 读取一个文件,把这个文件转换成Document对象
Document document = reader.read(new File(filepath));
// 获取根元素
Element root = document.getRootElement();
listNodes(root);
// 把文档转换字符串
/*
* String docXmlText = document.asXML(); System.out.println(docXmlText);
* System.out.println("---------------------------"); // csdn元素标签根转换的内容
* String rootXmlText = root.asXML(); System.out.println(rootXmlText);
* System.out.println("---------------------------");
*/
// 获取java元素标签 内的内容
/*
* Element e = root.element("CountryRegion");
* System.out.println(e.asXML());
*/
}
/**
* 创建一个document对象 往document对象中添加节点元素 转存为xml文件
*
* @throws Exception
*/
public void WriteXml() throws Exception {
Document document = DocumentHelper.createDocument();// 创建根节点
Element root = document.addElement("csdn");
Element java = root.addElement("java");
java.setText("java");
Element ios = root.addElement("ios");
ios.setText("ios");
writerNewFile(document);
}
/**
* 把一个文本字符串转换Document对象
*
* @throws Exception
*/
public void StringToDocument() throws Exception {
String text = "<csdn><java>Java</java><net>Net</net></csdn>";
Document document = DocumentHelper.parseText(text);
Element e = document.getRootElement();
System.out.println(e.getName());
writerNewFile(document);
}
/**
* 把document对象写入新的文件
*
* @param document
* @throws Exception
*/
public void writerNewFile(Document document) throws Exception {
// 紧凑的格式
// OutputFormat format = OutputFormat.createCompactFormat();
// 排版缩进的格式
OutputFormat format = OutputFormat.createPrettyPrint();
// 设置编码
format.setEncoding("UTF-8");
// 创建XMLWriter对象,指定了写出文件及编码格式
// XMLWriter writer = new XMLWriter(new FileWriter(new
// File("src//a.xml")),format);
XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(new File("src//c.xml")), "UTF-8"),
format);
// 写入
writer.write(document);
// 立即写入
writer.flush();
// 关闭操作
writer.close();
}
/**
* 遍历所有xml节点
* @param node
*/
public void listNodes(Element node) {
String s = node.getName();
// System.out.println("当前节点的名称:" +s);
// 首先获取当前节点的所有属性节点
s = "nodeName=" + s;
List<Attribute> list = node.attributes();
// 遍历属性节点
String t = "";
for (Attribute attribute : list) {
// System.out.println("属性" + attribute.getName() + ":" +
// attribute.getValue());
t += "," + attribute.getName() + "=" + attribute.getValue();
}
// 如果当前节点内容不为空,则输出
if (!(node.getTextTrim().equals(""))) {
System.out.println(node.getName() + ":" + node.getText());
t = ",value=" + node.getText();
}
// xmllist.add(s);
xmllist.add(s + t);
// 同时迭代当前节点下面的所有子节点
// 使用递归
Iterator<Element> iterator = node.elementIterator();
while (iterator.hasNext()) {
Element e = iterator.next();
listNodes(e);
}
}
}
阅读全文
0 0
- 用DOM4J解析XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 解析xml之--DOM4J
- dom4j解析XML
- 使用 dom4j 解析 XML
- xml文件解析-DOM4J
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- dom4j解析xml方法
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 前端代码套上安卓壳子
- 大东哥博客
- BZOJ4566:[HAOI2016]找相同字符(广义SAM)
- 五三、提取浏览器 url 中的参数名和参数值,生成一个key/value 的对象
- java编码
- dom4j 解析xml
- OS学习笔记(2)
- 12.20培训日记
- 编译hadoop2.x
- 【Android学习】数字签名
- 搭建FTP
- java读取邮件时,邮件含有正文跟附件的时候,读取不到正文内容
- Loadrunner 实现封装关联乱码转utf8
- 《黑客秘笈——渗透测试实用指南》读书笔记(1)