Java与XML(一)

JAXP

一、概述

         XML分析目前已经被标准化为两个,SAX(Simple API for XML)和DOM(Document Object Model,文档对象模型)。这两个标准提供了各种API以便于开发人员处理XML数据,分别适用于不同的分析需要

          为了解决这些困难,Sun  Microsystem在1999年后期提出了JAXP(Java API for XML Parsing)

二、版本(最新可用的)

JAXP Specification Version: 1.3

支持下面的特性

下载或是察看文档请参见:http://java.sun.com/xml/downloads/jaxp.html

三、JAXP概述

       他提供了一种可插入式层,这就使得应用程序开发人员能够在不影响应用程序逻辑的前提下修改分析器的方案。而且他还简单易学。JAXP API 模型也非常简单,易于理解,使用起来也很简便。用于分析的类和接口都打包封装在javax.xml.parsers包中,并置于已有的SAX或者DOM API的顶部。用于转换的类和接口则包装封装在jaavax.xml.transform包中,他提供了实现XSLT转换的各种应用程序。重要的一个问题是,JAXP是随Sun的Crimson分析器一起提供的,这是分析器的引用方案,他封装与Parser.jar中。

 

四、用SAX处理XML

示例:

 //生成处理类

 package jws.sax;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class MySAXExample extends DefaultHandler {

 public MySAXExample() {
  
  // TODO Auto-generated constructor stub
 }
 public void startDocument()throws SAXException{
  System.out.println("Start Document");
  System.out.println("<?xml version=1.0 ?>");
 }
 public void endDocument()throws SAXException{
  System.out.println("End Document");
 }
 public void characters(char bur[],int offset,int len)throws SAXException{
  String s=new String(bur,offset,len);
  System.out.println(s);
 }
 public void startElement(String namespaceURI,String localName,String rawName,
   Attributes attrs)throws SAXException
 {
  System.out.println("<"+localName);
  int length=attrs.getLength();
  for(int i=0;i<length;i++)
  {
   System.out.println(" "+attrs.getLocalName(i)+"="+attrs.getValue(i));
   
  }
  System.out.println(">");
 }
 public void endElement(String namespaceURI,String localName,String rawName)
 throws SAXException
 {
  System.out.println("</"+localName+">");
  
 }

}

//测试代码

 package jws.sax;
import jws.sax.MySAXExample;
import javax.xml.parsers.*;
public class test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  try
  {
   SAXParserFactory factory=SAXParserFactory.newInstance();
   SAXParser parser=factory.newSAXParser();
   parser.parse("test.xml",new MySAXExample());
   
   
  }catch(FactoryConfigurationError fce)
  {
   System.out.println("Occurred :"+fce);
  }
  catch(ParserConfigurationException pce)
  {
   System.out.println("Occurred :"+pce);
  }
  catch(Exception e)
  {
   System.out.println("Occurred :"+e);
  }
  

 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值