package xml;
import java.util.HashMap;
/**
* 测试Dom4jReadExmple解析的情况
*
* @author cuiweibing
* @since 2007.8.10
*/
public class TestDom4jReadExmple
{
public static void main(String[] args)
{
try
{
// 获取解析完后的解析信息
HashMap<String, String> hashMap;
Dom4jReadExmple drb = new Dom4jReadExmple();
// 遍历整个XML文件
hashMap = new HashMap<String, String>();
drb.iterateWholeXML("E:/student.xml", hashMap);
System.out.println("姓名\t年龄\t学院\t学院领导\t电话\t\t备注");
for (int i = 0; i < hashMap.size(); i += 6)
{
int j = i / 6;
System.out.print(hashMap.get("name" + j) + "\t");
System.out.print(hashMap.get("student-age" + j) + "\t");
System.out.print(hashMap.get("college" + j) + "\t");
System.out.print(hashMap.get("college-leader" + j) + "\t");
System.out.print(hashMap.get("telephone" + j) + "\t");
System.out.println(hashMap.get("notes" + j) + "\t");
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
=========低调的分割线====================
package xml;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 利用dom4j进行XML编程
*
* @author cuiweibing
* @since 2007.8.10
*/
public class Dom4jReadExmple
{
/**
* 遍历整个XML文件,获取所有节点的值与其属性的值,并放入HashMap中
*
* @param filename String 待遍历的XML文件(相对路径或者绝对路径)
* @param hm HashMap 存放遍历结果,格式:<nodename,nodevalue>或者<nodename+attrname,attrvalue>
*/
public void iterateWholeXML(String filename, HashMap<String, String> hm)
{
SAXReader saxReader = new SAXReader();
try
{
Document document = saxReader.read(new File(filename));
Element root = document.getRootElement();
// 用于记录学生编号的变量
int num = -1;
// 遍历根结点(students)的所有孩子节点(肯定是student节点)
for (Iterator iter = root.elementIterator(); iter.hasNext();)
{
Element element = (Element)iter.next();
num++;
// 获取person节点的age属性的值
Attribute ageAttr = element.attribute("age");
if (ageAttr != null)
{
String age = ageAttr.getValue();
if (age != null && !age.equals(""))
{
hm.put(element.getName() + "-" + ageAttr.getName() + num, age);
}
else
{
hm.put(element.getName() + "-" + ageAttr.getName() + num, "20");
}
}
else
{
hm.put(element.getName() + "-age" + num, "20");
}
// 遍历student结点的所有孩子节点(即name,college,telphone,notes),并进行处理
for (Iterator iterInner = element.elementIterator(); iterInner.hasNext();)
{
Element elementInner = (Element)iterInner.next();
if (elementInner.getName().equals("college"))
{
hm.put(elementInner.getName() + num, elementInner.getText());
// 获取college节点的leader属性的值
Attribute leaderAttr = elementInner.attribute("leader");
if (leaderAttr != null)
{
String leader = leaderAttr.getValue();
if (leader != null && !leader.equals(""))
{
hm.put(elementInner.getName() + "-" + leaderAttr.getName() + num, leader);
}
else
{
hm.put(elementInner.getName() + "-" + leaderAttr.getName() + num, "leader");
}
}
else
{
hm.put(elementInner.getName() + "-leader" + num, "leader");
}
}
else
{
hm.put(elementInner.getName() + num, elementInner.getText());
}
}
}
}
catch (DocumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
XML解析技术DOM4J解析.doc
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
java解析XML dom4j dom4j-1.6.1.jar dom4j.jarjava解析XML dom4j dom4j-1.6.1.jar dom4j.jar
xml解析,dom4j解析,xml循环节点处理,java代码 jar包执行20190331.rar
Android 创建与解析XML Dom4j方式
DOM4J jar包 所有的包 xml解析 dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1 导入直接使用
使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml
dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个...DOM解析器不支持使用XPath选择节点。
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
DOM4J是dom4j.org出品的一个开源XML解析包,它的网站中这样定义: Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections ...
dom4j解析xml实例,dom4j解析xml实例,dom4j解析xml实例,
很详细的文档 可以借鉴下 希望对你有帮助
dom,dom4j,sax解析xml 文件经典实例,内置详细注解
dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例
dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
Dom4j遍历解析XMLDom4j遍历解析XML
此方法解析xml时,不受xml层级的限制。文件中包含了说明文档,java类,以及所使用到的*.jar。并对代码做了注释让你一目了然……
DOM4j 是一个很好的 对xml数据进行解析的工具。。
dom4j和jdom解析xml的例子dom4j jdom xml 解析