`
sunbin
  • 浏览: 344916 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用JDOM读写XML的方法(来自在路上blog)

    博客分类:
  • xml
阅读更多

 

使用JDOM读写XML的方法(来自在路上blog)
使用JDOM读写XML的方法:

1. 读
读XML有多种方法.最基本的方法如下:
<1>用SAXBuilder类构造一个实例,并创建一个文件:
// Build the document with SAX and Xerces, no validation
SAXBuilder builder = new SAXBuilder();
// Create the document
Document doc = builder.build(new File("d:\\data.xml");
<2>调用Element类中的众多方法获取信息:
一下是在JSP中递归获取XML文件中的元素的基本信息的函数:
public void printChildren(Element parentElement,JspWriter out) throws java.io.IOException
{
    List children = parentElement.getChildren();
if(children==null || children.size()==0)
return;
for(int i=0 ; i<children.size(); i++)
{
Element aChild = (Element)children.get(i);
out.print(aChild.getName()+":";
out.print(aChild.getText()+"<br>";
printChildren(aChild,out);
}
}
上例用到了getChildren(),getName(),getText()三个方法。更多的方法参见doc文档。

2. 写
<1> 创建文档
Document document=new Document(new Element("name of the root Element");//调用的是new Document(Element rootElement)的构造函数。
说明:
Document类:Document defines behavior for an XML Document,定义了文件级的各种操作。
Element类:Attribute defines behavior for an XML attribute。

<2>逐个逐层写入element
Element chileElement=new Element("name of a child Element";  //创建元素 生成JDOM树
document.getRootElement().addContent(chileElement);
说明:
这个过程主要调用了Element类的addContent(Element anElement)方法。

<3>输出成XML文件
XMLOutputter outp = new XMLOutputter();
outp.output(document, new FileOutputStream("d:\\data.xml"); //输出XML文档
说明:
这种方法得到的XML的格式很不好看,要得到层次明显的XML,可采用如下方法:
a. XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat()); //利用Format类

b. XMLOutputter outputter = new XMLOutputter("", false);//第一个参数代表缩进方式,第二个参数代表是否换行。

c. XMLOutputter outp = new XMLOutputter("",true,"GB2312";//支持中文的带换行和缩进的格式
outp.setTextTrim(true);
outp.output(doc, System.out);


附:读写XML的例程:
1. 读:jdomreadxml.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.List,java.sql.*,java.io.*,org.jdom.*,org.jdom.output.*,org.jdom.input.*"%>
<%!
public void printChildren(Element parentElement,JspWriter out) throws java.io.IOException
{
    List children = parentElement.getChildren();
if(children==null || children.size()==0)
return;
for(int i=0 ; i<children.size(); i++)
{
Element aChild = (Element)children.get(i);
out.print(aChild.getName()+":";
out.print(aChild.getText()+"<br>";
printChildren(aChild,out);
}
}
%>
<HTML>
<HEAD>
<TITLE>用JDOM实现数据库到XML的转换</TITLE>
</HEAD>
<BODY>
<%
// Build the document with SAX and Xerces, no validation
SAXBuilder builder = new SAXBuilder();
// Create the document
Document doc = builder.build(new File("d:\\data.xml");
Element rootElement = doc.getRootElement();
out.print("Elements go here:";
out.print("<br>";
printChildren(rootElement,out);
%>
</BODY>
</HTML>

2. 写:(从Access数据库中获取字段并写入)
jdomdbtoxml.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.sql.*,java.io.*,org.jdom.*,org.jdom.output.*"%>
<HTML>
<HEAD>
<TITLE>用JDOM实现数据库到XML的转换</TITLE>
</HEAD>
<BODY>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver";
java.sql.Connection conn = java.sql.DriverManager.getConnection("jdbc:odbc:students";
java.sql.Statement stmt = conn.createStatement();
String sql="select * from student";   //定义查询的SQL语句
ResultSet rs=stmt.executeQuery(sql);   //执行查询
Document document=new Document(new Element("student_list");//创建文档
java.sql.ResultSetMetaData rsmd = rs.getMetaData();  //获取字段名
int numberOfColumns = rsmd.getColumnCount(); //获取字段数
int i=0;
while(rs.next()){ //将查询结果取出
    Element element0=new Element("student";  //创建元素 生成JDOM树
    document.getRootElement().addContent(element0);
    for (i=1; i<=numberOfColumns;i++)
{
String date=new String(rs.getString(i)); //代码转换
Element element=new Element(rsmd.getColumnName(i)).setText(date);
element0.addContent(element);
}
}
rs.close();                            //关闭结果集
stmt.close();                       //关闭statement
conn.close();                      //关闭连接

XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat());
outp.output(document, new FileOutputStream("d:\\data.xml"); //输出XML文档
out.print("XML 文档生成完毕!";
%>
</BODY>
</HTML>


以上内容来自http://www.blogcn.com/user34/dirkchen/blog/26117394.html非常感谢!

 

分享到:
评论

相关推荐

    jdom读写xml说明

    jdom类读写xml的代码示例资料总结。

    jdom读写xml代码

    JDOM是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果, 2000 年初在类似于 Apache 协议的许可下,JDOM 作为一个开放源代码项目正式开始研发,JDOM 作为一个开放源代码项目正式开始...

    JDom 读写XML

    NULL 博文链接:https://rayoo.iteye.com/blog/1168067

    jdom读写XML

    NULL 博文链接:https://wen2006953.iteye.com/blog/1769333

    jdom读写自定义XML

    很简单易懂的学习JDOM对XML的操作

    DOM、SAX、JDOM、DOM4J读写xml文档

    总结DOM、SAX、JDOM、DOM4J读写xml文档的多种方法。

    利用jdom操作xml文档

    利用jdom对xml文档进行操作,比如读写,删除等,我当时编码的时候找到的,比较详细,希望对大家有用。

    java中jxl.jar读写excel和jdom.jar读写xml的例子

    java中jxl.jar读写excel和jdom.jar读写xml的例子(含有所需jar包),经典实用。

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。下载地址 .txt

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...

    java读写xml文件的方法

    介绍了如何通过java来读写xml的方法,其中介绍了几种方法,如:DOM、SAX、JDOM、JAXB、dom4j.

    JAVA_xml读写(jdom包)

    先把ff.java复制到你的项目里面 再把jdom包导入 test.xml放在D:\的根目录下 就可以运行了 节点名可以自己自定义

    用JODM读写XML的源代码

    用JDOM来读写XML,完整的源代码,要先导JDOM的jar包

    JDOM的jar包 jdom-b7.jar

    JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。 JDOM 直接为JAVA编程服务。...在接下来的篇幅里将介绍怎么用Jdom去读写一个已经存在的XML文档。

    使用dom4j对xml的读写

    使用dom4j对xml的读写(这个感觉比jdom功能好点,但是复杂一点点)

    java读写xml文件

    使用java代码结合jdom.jar包控制xml文件中的信息的读写。 可读取和修改xml文件中的各个元素的内容和属性的内容。 可读取项目中的xml文件也可以读取存放在硬盘上的xml文件。

    JavaXml读写操作四种方式汇总

    涵盖了DOM、SAX、JDOM和DOM4J四种方式,读写xml。都给出了具体例子,都是可执行的。

    用来读写XML文件的dom4j开发

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...

    dom4j-XML解析.zip

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...

    dom4j-1.6.1 和 jdom

    压缩包中有dom4j的读写的简单方法,jdom只有写的方法,个人感觉dom4j更好用些

    读取XML的四种方法

    XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。此文当为完整的java文件,可以直接使用.

Global site tag (gtag.js) - Google Analytics