在Java和JSP中使用Jdom读取XML


使用Jdom读取XML是非常简单的,感谢Jdom团队。

首先下载Jdom的jar包,可以去官方网站下,下载后找到jdom.jar这个包,里面包含了所有需要用到的类和函数,把这个类包含到classpath里面,如果是JSP的话放在web应用的lib文件夹下。

我们先来看xml的结构,我写的这个xml是这样的(放在c盘根目录):

XML代码, 代码高亮@代码发芽网

<books>
<book>
<author>Dave Crane</author>
<bookname>Ajax In Action</bookname>
</book></books>
<book>
<author>Ryan Asleson</author>
<bookname>Foundations of Ajax</bookname>
</book>

对它操作的java程序是这样的:

Java代码, 代码高亮@代码发芽网

import java.util.*;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
public class readxml{
public static void main(String[] args) throws Exception{
SAXBuilder sb=new SAXBuilder();
Document doc=sb.build(“book.xml”);
Element root=doc.getRootElement();
List list=root.getChildren(“book”);
for(int i=0;i

Element element=(Element)list.get(i);
String author=element.getChildText(“author”);
String bookname=element.getChildText(“bookname”);
System.out.println(“Book Info:”);
System.out.println(“Bookname:《”+bookname+“》”);
System.out.println(“Bookauthor:”+author);
System.out.println(“==========================”);
}
}
}

其中

Java代码, 代码高亮@代码发芽网

1. Document doc=sb.build(“book.xml”);

是读取一个xml文档,

Java代码, 代码高亮@代码发芽网

Element root=doc.getRootElement();

是读取根节点。

编译运行后的结果:

readxml.png

如果把这些代码转换成JSP也同样非常简单:

Java代码, 代码高亮@代码发芽网

<%@ page contentType=“text/html; charset=gbk” language=“java” import=“java.util.*,org.jdom.*,org.jdom.input.SAXBuilder” errorPage=“” %>
This is a test page.

<%
SAXBuilder sb=new SAXBuilder();
Document doc=sb.build(“c:\\book.xml”);
Element root=doc.getRootElement();
List list=root.getChildren(“book”);
for(int i=0;i

Element element=(Element)list.get(i);
String author=element.getChildText(“author”);
String bookname=element.getChildText(“bookname”);
out.print(“Book Info:”);%>
<%out.print(“Bookname:《”+bookname+“》”);%>
<%out.print(“Bookauthor:”+author+“”);%>
<%out.print(“============================”);%>
<%}
%>

运行的结果是:

readxml2.png

本文所示源文件都可以到本站进行下载


版权信息:本文来自老杨个人网站,作者老杨原文地址,转载请注明出处。

如果喜欢本站,敬请订阅:老杨个人网站。谢谢惠顾!


分类: 信息技术
标签: , , , , ,

前3排已经被占了我要占座

  1. 不知道为什么你这儿使用的效果不是非常好,看到空格都被吃掉了,其中的for循环里面的小于号还造成了结果混乱。可以的话能不能来信告知一下你用的是什么blog系统?什么编辑器?这样便于修正这个问题。谢谢。
    另,已经把你的blog加到:http://www.fayaa.com/code/who/

    回复Ta

    呵呵,此时不必介怀,我这里出现这种情况是有原因的。
    我从前用过一个插件叫做coolcode,是wordpress的代码高亮插件,后来我发现从coolcode里面复制源代码的时候,它前面加上了序号和#,导致代码无法直接使用,所以我就准备放弃。后来我找其他的高亮插件的时候,发现了你们的这个网站,我很喜欢,你们做的很棒,然后我就把原来coolcode的那些代码都转到你们那里生成了一下,你说的那些问题都是在这一步生成的,和你们的程序没什么直接的关系,也就是说在转换成你们的代码的时候就已经是这个样子了。
    我第一次用你们的系统,很多地方还不太熟悉,其中出现的那些错误我也就没有一个一个的纠正,最近也比较忙,没有时间管理。
    另外,我的博客用得wordpress 2.5.1。
    我会继续使用你们的服务的,真的非常棒!
    也谢谢你给我的留言。

    回复Ta

    呵呵原来如此

    回复Ta

:emotion58 :emotion57 :emotion563 :emotion562 :emotion561 :emotion560 :emotion56 :emotion559 :emotion558 :emotion557 :emotion556 :emotion554 :emotion552 :emotion551 :emotion550 :emotion55 :emotion547 :emotion546 :emotion544 :emotion543 :emotion542 :emotion541 :emotion540 :emotion54 :emotion539 :emotion538 :emotion537 :emotion536 :emotion535 :emotion534 :emotion533 :emotion532 :emotion531 :emotion530 :emotion53 :emotion529 :emotion526 :emotion525 :emotion524 :emotion523 :emotion522 :emotion521 :emotion520 :emotion52 :emotion519 :emotion518 :emotion517 :emotion516 :emotion515 :emotion514 :emotion513 :emotion512 :emotion511 :emotion510 :emotion51 :emotion119 :emotion113