当前位置:编程学习 > JSP >>

java解析xml二种方法

java解析xml二种方法

配置文件为:

<?xml version="1.0" encoding="utf-8"?>
<config>
    <point name="test1">
        <name>zhang3</name>
        <address>abcdefg</address>
        <email>a@b.c</email>
    </point>
</config>


 

程序中使用如下:

public static void main(string[] args) {
    try {
        saxreader reader = new saxreader();
        document  document = reader.read(new file("src/config.xml"));
        element root = document.getrootelement();
        for(iterator it=root.elementiterator();it.hasnext();){
            element element = (element) it.next();
            system.out.println(element.elementtext("name") + element.elementtext("address") + element.elementtext("email"));
        }
    } catch (documentexception e) {
        e.printstacktrace();
    }
}


实例二

xml 文件格式如下:

  <?xml version="1.0" encoding="gb2312"?>
  <result>
  <value>
  <no>a1234</no>
  <addr>四川省xx县xx镇xx路x段xx号</addr>
  </value>
  <value>
  <no>b1234</no>
  <addr>四川省xx市xx乡xx村xx组</addr>
  </value>
  </result>

jsp教程 文件:

  <%@ page contenttype="text/html; charset=gb2312" %>
  <%@ page import="com.test.*"%>

  <html>
  <body>
  <%
  string args[]={""};
  myxmlreader.main(args);
  %>
  </body>
  </html>

  测 试

  首先出场的是 dom(jaxp crimson 解析器)

  dom 是用与平台和语言无关的方式表示 xml 文档的官方 w3c 标准。dom 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 dom 被认为是基于树或基于对象的。dom 以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像 sax 那样是一次性的处理。dom 使用起来也要简单得多。

  另一方面,对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。这些基于事件的模型,比如 sax。

  

bean文件:

  package com.test;

  import java.io.*;
  import java.util.*;
  import org.w3c.dom.*;
  import javax.xml.parsers.*;

  public class myxmlreader{

  public static void main(string arge[]){
  long lasting =system.currenttimemillis();
  try{
   file f=new file("data_10k.xml");
   documentbuilderfactory factory=documentbuilderfactory.newinstance();
   documentbuilder builder=factory.newdocumentbuilder();
   document doc = builder.parse(f);
   nodelist nl = doc.getelementsbytagname("value");
   for (int i=0;i<nl.getlength();i++){
    system.out.print("车牌号码:" + doc.getelementsbytagname("no").item(i).getfirstchild().getnodevalue());
    system.out.println(" 车主地址:" + doc.getelementsbytagname("addr").item(i).getfirstchild().getnodevalue());
  }
  }catch(exception e){
   e.printstacktrace();
  }
  system.out.println("运行时间:"+(system.currenttimemillis() - lasting)+" 毫秒");
  }
  }

补充:Jsp教程,Java基础 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,