`

jdom读取XML文件

阅读更多

项目中实例(参照最下面实例所写):

package com.hot35.common.action;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

import com.hot35.common.form.XMLTestForm;

public class XMLTestAction extends BasicAction{
 protected final Logger log = Logger.getLogger(getClass());
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  log.info("Begin to execute: "+this.getClass().getSimpleName()+".");
  XMLTestForm xml=(XMLTestForm )form;
  String strURL="D:/workspace0823/hot/WebContent/test.xml";
  
  Element eroot = null;

  request.getParameter("name");
  log.info(request.getParameter("name"));
  SAXBuilder builder = new SAXBuilder();
  Document doc = builder.build(new File(strURL));
  
  request.setAttribute("xml",doc );
  
  Element root = doc.getRootElement(); //根节点
   String result = root.getChildText("result"); //根节点之下的子节点class_name的内容
      String totalduration = root.getChildText("totalduration") == null ? "" : root.getChildText("totalduration");
      String totalcostcash = root.getChildText("totalcostcash") == null ? "" : root.getChildText("totalcostcash");
      String totaltimes = root.getChildText("totaltimes") == null ? "" : root.getChildText("totaltimes");
      log.info("result:"+result);
      log.info("totalduration:"+totalduration);
      log.info("totalcostcash:"+totalcostcash);
      log.info("totaltimes:"+totaltimes);
     
      java.util.List childrens = root.getChildren();  //得到所有属于根节点下的同级自节点
       for (int i = 0; i < childrens.size(); i++) {   //逐个打印 属性 信息
         org.jdom.Element ele = (org.jdom.Element) childrens.get(i);
         if (ele.getName().equals("cdrs")) {
          List li =ele.getChildren("cdr");
          for(int k=0;k            Element ele2 = (Element) li.get(k);
     String calltype = ele2.getAttributeValue("calltype");
     String caller = ele2.getAttributeValue("caller");
     String callee = ele2.getAttributeValue("callee");
     String begintime = ele2.getAttributeValue("begintime");
     String endtime = ele2.getAttributeValue("endtime");
     String duration = ele2.getAttributeValue("duration");
     String cost = ele2.getAttributeValue("cost");
     String udInfo = ele2.getAttributeValue("udInfo");
     log.info("calltype:" + calltype);
     log.info("caller:" + caller);
     log.info("callee:" + callee);
     log.info("begintime:" + begintime);
     log.info("endtime:" + endtime);
     log.info("duration:" + duration);
     log.info("cost:" + cost);
     log.info("udInfo:" + udInfo);
          }          
  
         }
       }        

         return mapping.findForward("success");
 }
}

所读

 

 

 

public class Untitled1 {

  public static void main(String[] args) {
    try {
      org.jdom.input.SAXBuilder sb = new org.jdom.input.SAXBuilder();
      org.jdom.Document doc = sb.build(new java.io.File("F:\\xsl\\x1.xml")); //改这个路径
      org.jdom.Element root = doc.getRootElement(); //根节点
      String class_name = root.getChildText("class_name"); //根节点之下的子节点class_name的内容
      String class_purview = root.getChildText("class_purview") == null ? "" : root.getChildText("class_purview");
      System.out.println(class_purview +" class " + class_name + "{"); //打印类信息
      java.util.List childrens = root.getChildren();  //得到所有属于根节点下的同级自节点
      for (int i = 0; i < childrens.size(); i++) {   //逐个打印 属性 信息
        org.jdom.Element ele = (org.jdom.Element) childrens.get(i);
        if (ele.getName().equals("property")) {
          String property_purview = ele.getChildText("property_purview")==null?"":ele.getChildText("property_purview")+" ";
          String property_name = ele.getChildText("property_name");
          String property_value = ele.getChildText("property_value")==null?"":"="+ele.getChildText("property_value");
          String property_type = ele.getChildText("property_type");
          System.out.println( property_purview + property_type +" "+ property_name + property_value +";");
        }
      }
      for (int i = 0; i < childrens.size(); i++) {  //逐个打印方法信息
        org.jdom.Element ele = (org.jdom.Element) childrens.get(i);
        if (ele.getName().equals("method")) {
          String method_name = ele.getChildText("method_name");
          String return_type = ele.getChildText("return_type");
          String method_purview = ele.getChildText("method_purview") == null ? "" : ele.getChildText("method_purview");
          java.util.List methodChildrens = ele.getChildren();
          String parameter_stat="";
          for (int j = 0; j < methodChildrens.size(); j++) {
            org.jdom.Element methodEle = (org.jdom.Element) methodChildrens.get(j);
            if (methodEle.getName().equals("parameter"))
            {
              String parameter_return_type = methodEle.getChildText("parameter_return_type");
              String parameter_name = methodEle.getChildText("parameter_name");
              parameter_stat = parameter_stat + parameter_return_type + " " +  parameter_name + ",";
           }
          }
          try {
            parameter_stat = parameter_stat.substring(0,parameter_stat.length()-1);
          }
          catch (Exception ex) {}
          System.out.println( method_purview + " "+ return_type +" "+ method_name + "("+ parameter_stat +"){");
          System.out.println("}");
        }
      }
      System.out.println("}");
    }
    catch (java.lang.Exception ex) {
      ex.printStackTrace();
    }
  }
}

 


xml文件格式:<!---->
<!---->
<class></class>
    <class_purview></class_purview>public
    <!---->
    <class_name></class_name>dsjkdsa
    <!---->
    <method>
        <!---->
        <method_purview></method_purview>publie
        <!---->
        <method_name></method_name>dd
        <!---->
        <return_type></return_type>int
        <!---->
         <parameter></parameter>
            <!---->
             <parameter_name></parameter_name> aa
            <!---->
             <parameter_return_type></parameter_return_type> int
        
        <!---->
    </method>
     <property>
        <!---->
         <property_purview></property_purview> private
        <!---->
         <property_name></property_name> a
        <!---->
         <property_type></property_type> int
        <!---->
         <property_value></property_value> 9
        <!---->
    </property>
    <!---->
    <method>
        <method_purview></method_purview>public
        <method_name></method_name>getName
        <return_type></return_type>String
    </method>
    <method>
        <method_purview></method_purview>public
        <method_name></method_name>setName
        <return_type></return_type>String
         <parameter></parameter>
             <parameter_name></parameter_name> a
             <parameter_return_type></parameter_return_type> String
        
         <parameter></parameter>
             <parameter_name></parameter_name> b
             <parameter_return_type></parameter_return_type> java.lang.Object
        
         <parameter></parameter>
             <parameter_name></parameter_name> c
             <parameter_return_type></parameter_return_type> int
        
    </method>
     <property>
         <property_purview></property_purview> private
         <property_name></property_name> name
         <property_type></property_type> String
         <property_value></property_value> ""
    </property>
         <property>
         <property_name></property_name> jpane
         <property_type></property_type> javax.swing.JPanel
         <property_value></property_value> new javax.swing.JPanel()
    </property>
         <property>
         <property_name></property_name> but
         <property_type></property_type> javax.swing.JButton
    </property>

分享到:
评论

相关推荐

    jdom 读取XML 文件

    接下来,我们将详细介绍使用JDOM读取XML文件的步骤: 1. 加载XML文件:使用`SAXBuilder`类来读取XML文件并构建DOM树。如下所示: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; public...

    java利用jdom读取xml文件

    要使用JDOM读取XML文件,我们需要以下几个步骤: 1. 引入JDOM库:在项目中添加JDOM的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.jdom &lt;artifactId&gt;jdom2 &lt;version&gt;...

    使用JDOM解析XML文件

    JDOM虽然功能强大,但在处理大型XML文件时可能效率较低,因为它需要将整个文档加载到内存。这时,可以考虑使用StAX或Java内置的DOM API,它们提供了流式处理或分块处理的能力,降低了内存消耗。 总结来说,JDOM是一...

    用JDOM读取XML文件

    用JDOM读取XML文件 用JDOM读取XML文件用JDOM读取XML文件

    JDOM读取XML,并且创建XML

    在JDOM中,读取XML文件通常涉及以下步骤: 1. 创建一个`SAXBuilder`实例,这是解析XML文档的入口点。 2. 使用`SAXBuilder`的`build`方法读取XML文件,返回一个`Document`对象。 3. 通过`Document`对象访问XML文档的...

    jdom学习读取xml文件.files

    本教程将深入探讨如何使用JDOM读取XML文件,并阐述其在Spring框架中的应用。 首先,我们了解JDOM的基本概念。JDOM提供了一种树型结构来表示XML文档,其中XML元素、属性、文本和注释等都对应于特定的Java对象。通过...

    jdom 读取修改xml文件

    ### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,...

    JDom 读写XML

    使用JDom读取XML文件通常涉及以下步骤: - 创建SAXBuilder实例。 - 调用`build()`方法,传入XML文件的输入流或文件路径,返回一个Document对象,表示整个XML文档。 - 通过Document对象获取根元素,然后可以遍历...

    用jdom解析xml文件

    在这个例子中,我们将深入探讨如何使用JDOM解析XML文件,并进行遍历与构建。 首先,我们需要了解JDOM的基本概念。JDOM主要由三部分构成:SAXBuilder用于从XML源构建DOM树,Element代表XML文档的元素,Attribute代表...

    jdom读取xml全属性文件

    本篇文章将详细探讨如何使用JDOM读取具有属性的XML文件,例如: ```xml ``` 首先,我们需要了解XML文档的基本结构。XML文档由元素(Element)、属性(Attribute)、文本(Text)等组成。在这个例子中,`...

    利用JDOM解析xml文件

    本篇文章将深入探讨如何利用JDOM解析XML文件,并基于XML中的类名生成相应的对象。 首先,我们需要理解JDOM的基本概念。JDOM提供了一组Java对象来表示XML文档,包括Element(元素)、Attribute(属性)、Text(文本...

    jdom解析xml文件

    **JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...

    java读取XML(JDOM)

    要使用JDOM读取XML文件,首先需要导入必要的库: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; ``` 然后,我们可以创建一个`SAXBuilder`实例,用于解析XML...

    JDOM操作xml文件的xmlBean

    ### JDOM操作XML文件的关键知识点 #### 一、JDOM简介 JDOM(Java Document Object Model)是一种基于Java的XML解析API,它提供了一种简便的方式来解析和操作XML文档。与传统的DOM相比,JDOM更加注重性能和易用性,...

    java jdom解析xml

    - **优化策略**:如果确实需要处理大型XML文件,可以使用JDOM的SAXBuilder,它允许以SAX方式读取XML,但仍然使用JDOM API进行操作。 6. **示例代码** ```java import org.jdom2.Document; import org.jdom2....

    JDOM解析xml文档实例(自己编写,仅供参考)

    在这个例子中,我们将学习如何读取XML文件,创建一个`SAXBuilder`对象来构建XML文档的DOM(文档对象模型)表示,然后通过`Document`对象来访问和修改XML结构。 2. `sohuchannel.xml`:这是我们要解析的XML文件,可能...

    JDOM对XML文件的读取

    接下来,我们将详细介绍JDOM读取XML文件的步骤: 1. 创建`SAXBuilder`对象:`SAXBuilder`是JDOM中用于构建XML文档的类,它使用SAX解析器来解析XML文件。 ```java import org.jdom2.input.SAXBuilder; SAXBuilder ...

    Jdom查找XML文件的所有节点内容

    使用JDOM解析XML文件的第一步是创建一个`SAXBuilder`对象,然后通过调用其`build`方法,传入XML文件的输入流,得到一个`Document`对象,该对象代表了整个XML文档。 ```java SAXBuilder sb = new SAXBuilder(); ...

    jdom解析xml文件小实例

    在这个小实例中,我们将深入探讨如何使用JDOM解析XML文件。 首先,我们需要引入JDOM的依赖。在Java项目中,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.jdom &lt;artifactId&gt;...

Global site tag (gtag.js) - Google Analytics