六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

解析器的使用(JAXP)

[摘要]分析器的使用(一)作者: 常明 寫作日期:2000-4-26 簡介這組文章主要就目前有的XML分析器分別介紹一下他們的接口和用法。其中包括SUN的XML分析器,IBM的分析器XML4J,XML4C,ORACLE的分析器,EXPAT。SUN的JAXPJAXP API全部包括在JAXP.JAR中,...
分析器的使用(一)

作者: 常明 寫作日期:2000-4-26



簡介
這組文章主要就目前有的XML分析器分別介紹一下他們的接口和用法。
其中包括SUN的XML分析器,IBM的分析器XML4J,XML4C,ORACLE的分析器,EXPAT。
SUN的JAXP
JAXP API全部包括在JAXP.JAR中,它有兩個工廠類 SAXParserFactory和DocumentBuilderFactory 分別對應SAX接口和DOM接口。
這兩個工廠類的作用是,通過設定其中的屬性創建合適的分析器,它可以配合各種分析器的具體實現一起使用。這就是說SAXParserFactor可以和任何符合SAX接口的PARSER一起用,不一定就是SUN的分析器;DocumentBuidlerFactory也一樣,不一定用SUN的實現。對于sax只要parser是實現org.xml.sax.Parser接口的,對于DOM就是文檔對象實現了 org.w3c.dom.*的接口。
SUN的分析器的實現是com.sun.xml.parser,它是實現了sax接口的,它的DOM實現則是基于SAX的,所以他們的分析器是一個。
下面介紹DOM的編程,首先要引入以下JAXP API定義:
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.DocumentBuilder;
如果要處理SAX異常加入:
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
文件I/O:
import java.io.File;
import java.io.IOException;
如果要處理DOM異常加入:
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
程序如下,聲明一個靜態全局的DOM的Document,方便下面的處理,Document可以從文件裝入,寫可以通過程序寫入,否則是空的。
public class DomEcho
{
static Document document;

public static void main (String argv [])
{
...
}

在分析過程中的異常處理的程序如下,這里有四種異常的處理:
public static void main (String argv [])
{
if (argv.length != 1) {
...
}

try {

} catch (SAXParseException spe) {
 // Error generated by the parser
 System.out.println ("\n** Parsing error"
+ ", line " + spe.getLineNumber ()
+ ", uri " + spe.getSystemId ());
 System.out.println(" " + spe.getMessage() );

 // Use the contained exception, if any
 Exceptionx = spe;
 if (spe.getException() != null)
 x = spe.getException();
 x.printStackTrace();

} catch (SAXException sxe) {
 // Error generated by this application
 // (or a parser-initialization error)
 Exceptionx = sxe;
 if (sxe.getException() != null)
 x = sxe.getException();
 x.printStackTrace();

} catch (ParserConfigurationException pce) {
 // Parser with specified options //can t be built
 pce.printStackTrace();

} catch (IOException ioe) {
 // I/O error
 ioe.printStackTrace();
}

}// main
生成分析器,有兩步,首先實例化工廠,再由工廠生成DocumentBuilder,最后開始分析:
DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();
try {
 DocumentBuilder builder =factory.newDocumentBuilder();
 document = builder.parse( new File(argv[0]) );

} catch (SAXParseException spe) {

有了Document對象后就可以做各種DOM操作,以下程序輸出XML:
XmlDocument xdoc = (XmlDocument) document;
xdoc.write (System.out);

如果要使用SAX接口程序就稍復雜一些,首先引入定義:
import java.io.*;
import org.xml.sax.*;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;


和DOM的編程相似,首先一樣實例化DocumentBuilderFactory,創建一個SAXParser,然后開始分析,期間處理各種異常:
public static void main (String argv [])

{
if (argv.length != 1) {
System.err.println ("Usage: cmd filename");
System.exit (1);
}

// Use the default (non-validating) parser
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
 NoAction noaction;
// Parse the input
SAXParser saxParser =factory.newSAXParser();
saxParser.setDocumentHandler(noaction);
saxParser.parse(new File(argv [0]), new Echo() );

} catch (Throwable t) {
t.printStackTrace ();
}
System.exit (0);
}
但用SAX是通過處理事件來進行的,所以在分析之前,一般要設定處理器,使用saxparser的SetDocumentHandler方法來設定。 下面是一個什么都不做的事件處理器,它實現了DocumentHandler接口。
class NoAction implement DocumentHandler{
... 
 public void startDocument ()
throws SAXException
{
}

public void endDocument ()
throws SAXException
{
}

public void startElement (String name, AttributeList attrs)
throws SAXException
{
}

public void endElement (String name)
throws SAXException
{
}

public void characters (char buf [], int offset, int len)
throws SAXException
{
}
 ...
以上就基本介紹了sun的xml分析器的使用,有任何問題請發mail給我們一起討論。




主站蜘蛛池模板: 外国一级黄色 | 日韩 欧美 中文 | 午夜网站在线观看免费网址免费 | 在线观看污视频 | 最新精品女神在线观看 | 亚洲视频日韩视频 | 又粗又硬又爽的三级视频 | 欧美又粗又大又硬又长又爽视频 | 中文字幕视频在线观看 | 日韩黄色小视频 | 四虎中文字幕 | 四月天中文字幕 | 亚洲人成网男女大片在线播放 | 日韩 在线视频精品 | 日本一区二区三区四区无限 | 亚欧毛片基地国产毛片基地 | 香蕉久久夜色精品国产小优 | 亚洲欧美日韩综合久久久久 | 四虎永久在线观看 | 亚洲国产精品一区二区久久hs | 亚洲三级免费 | 午夜在线观看福利 | 欧美一区精品二区三区 | 野外三级国产在线观看 | 四虎精品成人免费观看 | 在线亚洲精品自拍 | 五月花精品视频在线观看 | 亚洲视频在线免费观看 | 中文学幕专区 | 五月婷婷六月香 | 日本高清不卡在线 | 四虎精品视频在线永久免费观看 | 日韩专区视频 | 伊人免费视频网 | 天天影视色香欲性综合网网站 | 青草草视频在线观看 | 酥酥影院一级毛片在线看 | 天天操天天艹 | 青草下载| 亚洲天堂免费在线视频 | 日韩欧美一区二区三区不卡在线 |