网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > JSP > 正文
J2EE复习(二)XML(下)--xml解析
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/11/27
下载{$ArticleTitle}原创论文样式

1 2 3 4 5 6 7 8 9 下一页

  XML的四种解析方法及源代码(SAX、DOM、JDOM、DOM4J)

  第一种:SAX解析

  SAX处理机制:SAX是一种基于事件驱动的API。利用SAX解析XML文档,牵涉到两个部分:解析器和事件处理器。解析器负责读取XML文档,并向事件处理器发生事件,如元素开始和元素结束事件;而事件处理器则负责对事件做出响应,对传递的XML数据进行处理。

  测试用的xml文件db.xml

 1<?xml version="1.0" encoding="UTF-8"?>
 2<!--<!DOCTYPE dbconfig SYSTEM "db.dtd">-->
 3<dbconfig>
 4 <db type="Oracle">
 5  <driver>oracle.JDBC.driver.OracleDriver</driver>
 6  <url>jdbc:oracle:thin:@localhost:1521:oracle</url>
 7  <user>scott</user>
 8  <password>tiger</password>
 9 </db>
10</dbconfig>DTD文件db.dtd 1<!ELEMENT dbconfig (db+)>
2<!ELEMENT db (driver,url,user,password)>
3<!ELEMENT driver (#PCDATA)>
4<!ELEMENT url (#PCDATA)>
5<!ELEMENT user (#PCDATA)>
6<!ELEMENT password (#PCDATA)>
7<!ATTLIST db type CDATA #REQUIRED>

  SAX解析实例一

  org.xml.sax.DefalutHandler类:  可以扩展该类,给出自己的解析实现

  SAXPrinter.Java

 1import java.io.File;
 2
 3import javax.xml.parsers.SAXParser;
 4import javax.xml.parsers.SAXParserFactory;
 5
 6import org.xml.sax.Attributes;
 7import org.xml.sax.SAXException;
 8import org.xml.sax.helpers.DefaultHandler;
 9
10public class SAXPrinter extends DefaultHandler
11{
12
13  /** *//**
14   * 文档开始事件
15   */
16    public void startDocument() throws SAXException
17    {
18        System.out.println("<?xml version="1.0" encoding="utf-8"?>");
19    }
20   
21  /** *//**
22   * 接收处理指令事件
23   */
24    public void processingInstruction(String target, String data) throws SAXException
25    {
26        System.out.println("<?"+target+" "+data+"?>");
27    }
28   
29  /** *//**
30   * 元素开始事件
31   * 参数说明:
32   *   uri - 名称空间 URI,如果元素没有任何名称空间 URI,或者没有正在执行名称空间处理,则为空字符串。
33   *   localName - 本地名称(不带前缀),如果没有正在执行名称空间处理,则为空字符串。
34   *   qName - 限定的名称(带有前缀),如果限定的名称不可用,则为空字符串。
35   *   attributes - 附加到元素的属性。如果没有属性,则它将是空的 Attributes 对象。
36   */
37    public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException
38    {
39        System.out.print("<"+qName);//输出元素名称
40        int len=attrs.getLength();//元素属性列表长度
41       
42    //利用循环输出属性列表
43        for(int i=0;i<len;i++)
44        {
45            System.out.print(" ");
46            System.out.print(attrs.getQName(i));
47            System.out.print("="");
48            System.out.print(attrs.getValue(i));
49            System.out.print(""");
50        }
51        System.out.print(">");
52    }
53   
54  /** *//**
55   * 元素中字符数据事件:接收元素中字符数据
56   * 注意:1.应用程序不要试图读取ch数组指定范围外的数据,(即start至length之外)
57   *      2.有些解析器将使用ignorableWhitespace()方法来报告元素内容中的空白,而不是characters()方法,如:进行有效性验证的解析器
58   */
59    public void characters(char[] ch, int start, int length) throws SAXException
60    {
61        System.out.print(new String(ch,start,length));
62    }
63
64  /** *//**
65   * 结束元素事件
66   */
67    public void endElement(String uri, String localName, String qName) throws SAXException
68    {
69        System.out.print("</"+qName+">");
70    }
71
72    public static void main(String[] args)
73    {
74        SAXParserFactory spf=SAXParserFactory.newInstance();
75       
76        try
77        {
78            SAXParser sp=spf.newSAXParser();
79            sp.parse(new File("db.xml"),new SAXPrinter());
80        }
81        catch (Exception e)
82        {
83            e.printStackTrace();
84        }
85    }
86}

(责任编辑:admin)

  • 上一篇资讯: J2EE复习(二)XML(上)
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号