public class TestDom4j {
/**
* dom4j生成XML步骤: 1.创建Document对象,Document document =
* DocumentHelper.createDocument(); 2.生成根节点,Element root =
* document.addElement("beans"); 3.添加标签,Element bean = root.addElement("bean");
* 4.给标签添加属性 5.依次重复3,4步骤可得到较为复杂的XML 6设置xml的输出格式,即对xml格式化
*
*
* dom4j解析XML步骤: 1.读取资源文件,获得Document对象,Document document = new
* SAXReader().read(new File(path)); 2.获取根节点,Element root =
* document.getRootElement();
* 3.根据特定标签(如根节点)称获取所有的指定标签(如bean),
List<Element> list = root.elements("bean");
* 4.遍历所有指定标签的属性,这里和生成xml时略有不同,因为同一标签可能会出现多次,
* for(Element bean : list)
* {String id = bean.attributeValue("id");}
*5.如子标签下还有子标签,重复3,4的步骤可得到所需的结果
*
*/
public static void main(String[] args) throws Exception {
// System.out.println(generation("D:/user.xml"));
try {
// 获取解析完后的解析信息
HashMap<String, String> hashMap;
// 遍历整个XML文件
hashMap = new HashMap<String, String>();
iterateWholeXML("D:/user.xml", hashMap);
System.out.println("Id\t姓名\t密码");
for (int i = 0; i < hashMap.size(); i+=3) {
int j = i/3;
System.out.print(hashMap.get("user-id" + j) + "\t");
System.out.print(hashMap.get("name" + j) + "\t");
System.out.println(hashMap.get("password" + j) + "\t");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 采用dom4j生成xml
*
* @param path
* : 生成文件的绝对路径,该参数仅在写入文件时有效
* @return
*/
public static String generation(String path) {
// 声明xml字符串
String fileString = "";
// 创建Document对象
Document document = DocumentHelper.createDocument();
// 生成根节点(beans)
Element root = document.addElement("users");
//在"users"根节点下添加了3个"user"标签
for (int i = 1; i < 3; i++) {
// 第一层,在根节点下添加"bean"标签
Element bean = root.addElement("user");
// 给"bean"标签添加属性
bean.addAttribute("id", "" + i);
bean.addElement("name").addText("name"+i);
bean.addElement("password").addText("passoword"+i);
}
// 设置xml输出格式
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
java.io.Writer writer = new java.io.StringWriter();
XMLWriter xmlWriter = new XMLWriter(writer, format);
try {
xmlWriter.write(document);
fileString = writer.toString();
xmlWriter.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
// System.out.println(fileString);
writeLocalFile(path, fileString);// 这里是写入本地文件。也可以将该字符串以流的形式输出到其他目的地
return fileString;
}
/**
* 采用字符流将context写到指定文件
* @param path : 写入文件的绝对路径
* @param context : 写入的内容
*/
public static void writeLocalFile(String path, String context) {
try {
java.io.Writer writer = new java.io.FileWriter(path);
writer.write(context);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void iterateWholeXML(String filename,HashMap<String, String> hm) {
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(new File(filename));
Element root = document.getRootElement();
// 用于记录user编号的变量
int num = -1;
// 遍历根结点(users)的所有孩子节点(肯定是user节点)
for (Iterator iter = root.elementIterator(); iter.hasNext();) {
Element element = (Element) iter.next();
num++;
// 获取user节点的id属性的值
Attribute idAttr = element.attribute("id");
if (idAttr != null) {
String id = idAttr.getValue();
if (id != null && !id.equals("")) {
hm.put(element.getName() + "-" + idAttr.getName() + num,id);
}
}
// 遍历user结点的所有孩子节点(即name,password),并进行处理
for (Iterator iterInner=element.elementIterator(); iterInner.hasNext();)
{
Element elementInner = (Element) iterInner.next();
hm.put(elementInner.getName() + num,elementInner.getText());
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
利用Dom4j生成XML和解析XML
Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档
dom4j解析xml文件的压缩包,完整版。对jdom进行了封装。包含源码,jar包以及所需的全部内容。
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
通过dom4j解析xml,修改xml,自动生成xml文件。使用dom4j模拟解析web.xml配置文件,同时考虑到一个url-pattern和多个url-pattern的情况。
dom4j解析及生成 xml代码收集dom4j解析及生成 xml代码收集
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
4种最主流、最全面、最详细的生成和解析xml的4种方式,包括Dom,Dom4j,Sax,JDom,读懂了绝对好用xml,非常好的入门项目,而且精心排版,逻辑清晰
NULL 博文链接:https://aa84990.iteye.com/blog/1881734
详细的介绍了dom4j如何解析xml,如何把数据库中的数据存到xml文件
XMLTest.java中创建XML和解析XML示例,另附dom4j资源包
主要介绍了java使用dom4j生成与解析xml文档的方法,结合实例形式分析了java基于dom4j操作xml节点生成xml文档以及解析xml文档的相关操作技巧,需要的朋友可以参考下
对xml各个标签的使用和解释,如何在程序中使用xml,怎么导出xml文档。比较初级的东西,但是很使用。
Java解析XML的四种方法 1. DOM生成和解析XML文档 2. SAX生成和解析XML文档 3. DOM4J生成和解析XML文档 4. JDOM生成和解析XML
一个用dom4解析和生成XML的java
支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写
今天小编就为大家分享一篇用dom4j生成xml,去掉xml头的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Java DOM 生成XML,对基本的DOM又封装了一层,使操作XML更简单
java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML