jdom和dom4j读取xml文件以及生成xml文件的方法
来源:互联网 发布:php soapclient 编辑:程序博客网 时间:2024/05/18 02:27
1、使用dom4j的方式遍历xml文件
public class MyDom4J {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();//创建 SAXReader对象
Document document = reader.read(new File("src/hibernate.hbm.xml"));//读取xml文件--创建Document对象
Element rootElement = document.getRootElement();//获取根节点元素
prin("根节点名--"+rootElement.getName());
for(Iterator it = rootElement.elementIterator();it.hasNext(); ){//遍历根节点下面的子元素
Element element = (Element) it.next();
prin("子节点--"+element.getName());
for(Iterator i = element.attributeIterator();i.hasNext();){//遍历子元素的属性名称及属性值
Attribute attribute = (Attribute) i.next();
prin("节点属性--"+attribute.getName()+"属性的值--"+attribute.getValue());//getName()取得节点的属性 getValue取得属性的值
}
}
}
public static void prin(Object o){
System.out.println(o);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2、使用jdom的方式遍历xml文件
public class MyJDom {
public static void main(String[] args) throws Exception{
SAXBuilder sb=new SAXBuilder();//建立构造器 SAXBuilder
Document doc=sb.build(new FileInputStream("src/jdomt.xml"));//读入指定文件
Element root=doc.getRootElement();//获得根节点
@SuppressWarnings("unchecked")
List list=root.getChildren();//将根节点下的所有子节点放入List中
for(int i=0;i<list.size();i++) {
System.out.println("---------------------------");
Element item=(Element)list.get(i);//取得节点实例
String id=item.getAttribute("id").getValue();//取得属性值
System.out.println("id-->"+id);
Element sub=item.getChild("title");//取得当前节点的字节点
String text=sub.getText();//取得当前节点的值
System.out.println("Title-->"+text);
if(item.getChild("content").getChildren().size()>0){
Element sub2=item.getChild("content").getChild("name");
String text2=sub2.getText();
System.out.println("name-->"+text2);
}
Element sub3=item.getChild("email");
String text3=sub3.getText();
System.out.println("Email-->"+text3);
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//也可以使用xpath的方式读取配置文件属性
List<Node> list = document.selectNodes("//hibernate-mapping/class/property");
for(Node n : list){
System.out.println("节点名:"+n.getName()+"属性值:"+n.valueOf("@name"));
}
//这里需要添加jaxen-1.1-beta-7.jar包
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--使用jdom生成xml文件 // 模拟生成Hibernate映射文件
public class CreateXML {
public static void main (String[] args) throws Exception {
createDocument();
}
public static Document createDocument () throws Exception{
Document document = DocumentHelper.createDocument();//使用DocumentHelp创建一个Document对象
Element rootElement = document.addElement("hibernate-mapping");//创建根节点
Element e = rootElement.addElement("class")//在根节点下添加子节点
.addAttribute("name", "UserInfo")//class-属性name、table
.addAttribute("table", "t_userinfo")
.addElement("id").addAttribute("name", "id").addElement("generator").addAttribute("class", "native")//class下面子节点id--属性name value id
//在class节点下添加新的节点
.getParent().getParent().addElement("property")//property属性是id属性的兄弟节点
.addAttribute("name", "type").addAttribute("name", "info");
//可是使用链式编程
//FileWriter out = new FileWriter("src/user.hbm.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(
new FileWriter("src/user.hbm.xml"),format
);
//document.write(out);
writer.write(document);
writer.close();
//out.flush();
//out.close();
return document;
}
}
总结:jdom和dom4j最明显的区别就是jdom是基于树的处理xnml的Java API,一次性把树加载到内存中.而dom4j它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理.在应用上都非常的方便,封装了底层的DOM和SAX,大大简化了编程工作!
- jdom和dom4j读取xml文件以及生成xml文件的方法
- 使用dom4j和jdom读取xml文件
- JDOM、DOM4j读取XML文件(SAXReader)
- 读取XML文件DOM4J方法
- jdom读取XML文件
- jdom读取xml文件
- jdom读取xml文件
- Jdom读取XML文件
- jdom读取xml文件
- jdom读取xml文件
- jdom 读取xml文件
- Jdom读取XML文件
- Jdom读取xml文件
- 【jdom】读取xml文件
- jdom生成xml文件
- XML--jdom/dom4j/sax解析XML文件
- 在java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB、Dom4J
- xml文件读取-dom4j
- 在虚拟机下的minicom
- JS小练习
- 非典型2D游戏引擎 Orx 源码阅读笔记(1) 总体结构
- 07_30_C++班第一次课_Linux常用命令
- 女儿的趣事(二)问我想不想吃啊?
- jdom和dom4j读取xml文件以及生成xml文件的方法
- HDU 1068(图论,二分匹配)
- 一村菊花香
- 巧用SQL的全局临时表防止用户重复登录
- 开篇 面对面销售是不可替代的销售手段
- bboss-persistent结合bboss-aop实现注解事务
- Windows 2003 关机或重启后黑屏,电源和硬盘无法关闭
- 软件设计师的通过率?
- tftp配置