Jdom读xml解析实例子

Jdom读xml解析实例子

 

 

 

package com.yanek.demo.xml.test;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class JdomReadXml {

 /**
  * @param args
  */
 public static void main(String[] args) {

  /**
   * <?xml version="1.0" encoding="UTF-8"?> <actions m="001"><action
   * path="/test" class="com.mystruts.demo.LoginAction"><forward
   * name="success" url="test.jsp" /><forward name="failure"
   * url="failure.jsp" /></action><action path="/user"
   * class="com.mystruts.demo.UserAction"><forward name="success"
   * url="test.jsp" /><forward name="failure" url="failure.jsp" /></action></actions>
   */

  SAXBuilder sax = new SAXBuilder();
  Document doc;
  try {
   try {
    doc = sax.build(new File("mystruts.xml"));

    Element root = doc.getRootElement();
    List actions = root.getChildren();
    // 遍历获取根节点下的一级子节点,并作为入参传入递归方法
    for (Iterator i = actions.iterator(); i.hasNext();) {
     Element action = (Element) i.next();
     System.out.println(action.getAttributeValue("path"));
     System.out.println(action.getAttributeValue("class"));

     List forwards = action.getChildren();

     for (Iterator j = forwards.iterator(); j.hasNext();) {
      Element forward = (Element) j.next();
      System.out.println(forward.getAttributeValue("name"));
      System.out.println(forward.getAttributeValue("url"));
     }

    }

   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

  } catch (JDOMException e) {
   e.printStackTrace();
  }

 }

}

 

输出:

 

/test
com.mystruts.demo.LoginAction
success
test.jsp
failure
failure.jsp
/user
com.mystruts.demo.UserAction
success
test.jsp
failure
failure.jsp

时间: 2009-06-12

Jdom读xml解析实例子的相关文章

C++ XML解析之TinyXML篇

最近使用TinyXML进行C++ XML解析,感觉使用起来比较简单,很容易上手,本文给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方法来完成.以后的文章里会讲解使用Xerces进行C++ XML解析的例子,希望大家一起交流. TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译.这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树. DOM模型即文档对象模型,是将整

xml解析-在做项目实训,遇到Xml解析的问题

问题描述 在做项目实训,遇到Xml解析的问题 运行时出现这样的问题setInput() must be called first. (position:START_DOCUMENT [email protected]:1) <?xml version=""1.0"" encoding=""UTF-8""?>-<Response>-<Error><ErrorCode>0</ErrorCode>

[Java开发之路](12)JDOM和DOM4J解析XML文档

1. JDOM解析XML文档 1.1 简介 JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析.生成.序列化以及多种操作.JDOM 直接为JAVA编程服务.它利用更为强有力的JAVA语言的诸多特性(方法重载.集合概念以及映射),把SAX和DOM的功能有效地结合起来.在使用设计上尽可能地隐藏原来使用XML过程中的复杂性.利用JDOM处理XML文档将是一件轻松.简单的事. JDOM帮助文档 : http://www.jdom.org/docs/apidocs/ Jar包

jsp解析xml文档之使用 JDOM 读取XML文件

jsp教程解析xml文档之使用 JDOM 读取XML文件 xml文件: <?xml version="1.0" encoding="GB2312"?> <RESULT>   <VALUE>        <NO>A1234</NO>        <ADDR>四川省XX县XX镇XX路X段XX号</ADDR>   </VALUE>   <VALUE>      

大话XML解析

之前我写过一篇关于xml解析的文章:http://blog.csdn.net/sdksdk0/article/details/50749326.今天这篇文章主要是进一步加深对xml基础的理解了使用,毕竟基础是很重要的嘛!写的应该会更注重细节的内容.主要内容有xml语法.DOM解析.SAX解析.Xpath,schema约束. 一.xml语法 标签 有开始标签和结束标签 xml标签名称区分大小写 xml标签一定要正确配对 中间不能使用空格 不能以数字开头,可以以下划线或字母开头 在一个xml文档中,

JDOM操作XML文件(法老修正版)

dom|xml 原文:JDOM操作XML文件地址:http://www.jspcn.net/htmlnews/200120272.html---------------------------------------------------------------------------    这篇文章讲的不错~把JDOM的基本操作实例化了,不过由于当时的作者用的JDOM版本还比较陈旧,所以部分代码会编译出错!支持中文也不好!所以,法老在原作者的基础上对程序做了修改!休正了编译出错以及中文乱码的

教您快速上手使用JDOM处理XML文档的技巧

dom|xml|技巧 JDOM的介绍以及与JAXB的比较 Java + XML = JDOM ! 这就是JDOM设计者的目标.如果你曾经使用过烦人的SAX或是DOM来处理XML,你就会知道为什么要有JDOM或者是JAXB.在JavaOne会议上JDOM的主要创始人Jason Hunter有一篇精彩的演讲介绍了JDOM技术,题目就是JDOM Makes XML Easy. 在那篇文档里,JDOM被拿来与DOM比较,而我更愿意拿它同JAXB比较.因为JAXB和JDOM都是为了在Java中提供比DOM

使用jdom操作xml数据,生成含Jtree的applet

dom|xml|数据 转自:http://www.softhouse.com.cn/html/200410/2004102517145700001335.html 使用jdom操作xml数据,生成含Jtree的applet    在我们工作中,常常会碰到树形组件的生成问题,如果你在开发web application,纯粹使用javascript来生成树形组件是非常繁琐的,而且交互性也不不太好.所以许多产品使applet来实现树形组件的功能.比如说,weblogic,jboss等产品的consol

开发那点事系列三 - 由XML解析引起的API设计思考

      谈起XML解析,大家可能第一反应是DOM,SAX模型.没错,在Java领域,无论是Dom4j, Jdom,还是XOM,其底层都会依赖具体的解析器引擎(Crimson or Xerces)去做事,具体的实现后面会有文章陆续探究.今天写这篇文章的主要目的是想和大家分享自己使用Java SE6的StAX API的一些感受,尤其是对其API的设计理念的一个思考,没多少文字,主要是一些启发性的东东.当然,在你继续浏览之前,希望能熟练掌握以下类库,有助于更好的和我产生共鸣,哈哈:       S