亚洲毛片视频_国产精品日韩高清_国产伦理一区_国产精品视频免费一区_亚洲精品1区2区_美女尤物久久精品_亚洲人体大胆视频_亚洲欧美日韩精品久久久_国产一区成人_国产精品综合

北大青鳥學校:java使用sax對xml文檔的解析


北京北大青鳥學校學術部老師表示:隨著互聯網技術的發展,XML技術變得越來越重要,從而出現了很多與XML的整合應用方面的技術,SAX就是其中之一。今天,北京北大青鳥學校的老師就和大家談談java怎樣使用sax對xml文檔的解析。

首先,北京北大青鳥學校老師先講解SAX對XML文檔的解析機制。一般情況下,SAX 處理器分析XML代碼將生成以下事件:

Start document
Start element ()
Characters (white space)
Start element ()
Characters ()
End element ()
............
End element ()
具體解析步驟如下
一、 創建事件處理程序,SAX 提供應用程序可擴展的類 DefaultHandler。
創建的解析類config必須繼承類 DefaultHandler。
如:public class Config extends DefaultHandler{}

二、使用 JAXP 來創建解析器:使用 JAXP 中的類 XMLReaderFactory 來創建解析器。首先聲明 XMLReader的一個對象 parser。然后使用
XMLReaderFactory的createXMLReader方法來創建 SAXParser。
XMLReader parser =
XMLReaderFactory.createXMLReader(
"org.apache.xerces.parsers.SAXParser");

三、一旦創建了解析器,則需要將 config 設置為內容處理程序,以便于其接收事件。
parser.setContentHandler(this);
但是,當然總會有可能在試圖進行解析時,數據有問題。這時應該創建ErrorHandler 在這樣的情況下,有一個處理程序來處理錯誤和內容。
parser.setErrorHandler(this);

四、準備對文件進行實際解析。應用程序文件傳遞給 parse(),然后應用程序會繼續運行。
parser.parse(confFile);(北京北大青鳥學校)

五、接下來就開始對文檔進行解析了。前面說過SAX的處理機制,SAX在處理XML流的過程中,首先產生startDocument()事件,實際上該事件什么也沒有發生,因為還沒有定義任何解析的事件。使用 startDocument() 事件只是為了通知文檔的開始。類似其它 SAX 事件,該事件拋出 SAXException。
例如:
public void startDocument()
throws SAXException {
System.out.println(
"Tallying survey results...");
}

六、跟下來,就正式開始對文件進行解析了。這時SAX會產生一個startElement()事件,對于每個元素,都會回送一個傳遞給 startElement() 事件的名稱。不過解析器實際所傳遞是:該元素的名稱空間信息;該元素的實際名稱或 localName;名稱空間別名和 localName 的組合(否則是限定名或 qname);以及該元素任何屬性。startElement() 事件還提供對元素屬性的訪問。將這些屬性傳遞進稱為 Attributes的數據結構。根據屬性在數組中位置或屬性的名稱,可以檢索該屬性值。
例如:
public void startElement(
String namespaceURI,
String localName,
String qName,
Attributes atts)
throws SAXException {
String s = (!"".equals(localName)) ? localName : qName;
System.out.print("Start element: ");
System.out.println(localName);
tag = s;
if (localName == "Connector") {
System.out.println("name: "
+ atts.getValue("name"));
} else if (localName == "port") {
thisQuestion = atts.getValue("servername");
}else if (localName == "maxThreadPoolSize") {
thisQuestion = atts.getValue("poolname");
}
if (localName == "Database") {
System.out.println("name: "
+ atts.getValue("name"));
} else if (localName == "driverName") {
thisQuestion = atts.getValue("dataname");
}else if (localName == "encoding") {
thisQuestion = atts.getValue("codename");
}
thisElement = localName;(北京北大青鳥學校)

for (int att = 0;att < atts.getLength(); att++) {
String attName = atts.getLocalName(att);
System.out.println(" "
+ attName + ": "
+ atts.getValue(attName));
}

}
七、有了元素,接下來用 characters() 來檢索實際的數據。這時可以使用下面的方法獲得實際的數據:可以用String s = new String(ch, start, length).trim();這個方法來獲得數據。
例如:
public void characters(char[] ch,
int start,
int length)
throws SAXException {
String s = new String(ch, start, length).trim();
if (!"".equals(s)) {
if ("port".equals(tag)) {
System.out.println(Integer.parseInt(s));
} else if ("maxThreadPoolSize".equals(tag)) {
System.out.println(Integer.parseInt(s));
}
//System.out.println(tag+" = "+s);
}
s = new String(ch, start, length).trim();
if (!"".equals(s)) {
if ("driverName".equals(tag)) {
System.out.println(s);
} else if ("encoding".equals(tag)) {
System.out.println(s);
}
//System.out.println(tag+" = "+s);
}
}

八、接下來的要做的就是用endElement()來結束對一個xml的 element的解析。
例如:下面的方法
public void endElement(String namespaceURI,
String localName,
String qName)
throws SAXException {
printIndent(indent);
System.out.println("End Element: "+localName);
indent = indent - 4;
thisQuestion = "";
thisElement = "";

九、最后就是告訴程序,xml文件解析完畢,此時,用endDocument()來結束程序。
例如:
public void endDocument() {}

北京北大青鳥學校老師總結;sax處理xml的方法還基本上是差不多的,只是一二步的方法相對多一點,那些其他的方法,如果您有疑問,歡迎來北京北大青鳥學校學習相關的課程。

北大青鳥網上報名
北大青鳥招生簡章
亚洲毛片视频_国产精品日韩高清_国产伦理一区_国产精品视频免费一区_亚洲精品1区2区_美女尤物久久精品_亚洲人体大胆视频_亚洲欧美日韩精品久久久_国产一区成人_国产精品综合
欧美精品久久一区| 蜜臂av日日欢夜夜爽一区| 国内精品第一页| 美女www一区二区| 经典三级在线一区| 国产成人av电影在线观看| 成人午夜av在线| 亚洲免费高清视频在线| 色婷婷av一区二区三区之一色屋| 老司机精品导航| 欧美视频三区在线播放| 欧美三级韩国三级日本一级| 欧美三级电影网| 亚洲黄色大片| 韩国av一区二区三区在线观看| 精品一区二区三区欧美| 成人精品国产福利| 女同性一区二区三区人了人一| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲成人精品一区二区| 91精选在线观看| 国产精品久久久久精k8| 亚洲九九爱视频| 欧美视频二区| 中文字幕国产精品一区二区| av成人老司机| 欧美日韩亚洲免费| 亚洲欧美伊人| 国产亚洲欧美色| av在线不卡电影| 日韩亚洲欧美在线| 久久激情综合网| 中文字幕一区二区三区在线不卡 | 亚洲综合男人的天堂| 色噜噜狠狠色综合中国| 国产精品亲子伦对白| 精品午夜一区二区三区在线观看| 亚洲国产导航| 日本一区二区久久| 国产精品一区一区| 欧美综合欧美视频| 亚洲亚洲精品在线观看| 亚洲天堂偷拍| 亚洲欧洲成人精品av97| 欧美淫片网站| 国产亚洲成av人在线观看导航| 久久精品国产精品亚洲红杏| 亚洲制服少妇| 亚洲成人av一区二区| 国产日韩欧美一区二区三区在线观看 | 激情久久五月| 最新久久zyz资源站| 欧美激情综合色综合啪啪| 精品国产免费人成在线观看| 成人av网站免费| 亚洲黄色av| 亚洲视频一二三区| 亚洲麻豆视频| 亚洲成人www| 欧美在线不卡一区| 国产一区二区网址| 日韩一本二本av| 欧美精品导航| 亚洲色图19p| 欧美性色黄大片| 国产精品一区二区在线播放| 99v久久综合狠狠综合久久| 久久综合久久综合亚洲| 国产在线日韩| 亚洲二区在线视频| 欧美一区二区三区精品| 91亚洲大成网污www| 亚洲九九爱视频| 亚洲一区欧美二区| 国产精品多人| 欧美激情一级片一区二区| 成人av在线播放网站| 国产成人精品一区二区三区四区| 日本不卡一二三区黄网| 日韩专区欧美专区| 日韩精品视频网站| 国产精品久久一卡二卡| 国产视频不卡一区| 精品国产成人在线影院| 91精品国产入口| 欧美午夜精品一区| 欧美综合在线视频| 1000部精品久久久久久久久| 精品一区二区影视| 青青草原综合久久大伊人精品| 国产精品久久久久久久久久免费看 | 欧美高清不卡| 国产一区二区中文字幕| 亚洲午夜久久久久中文字幕久| 欧美综合视频在线观看| 午夜天堂影视香蕉久久| 国产欧美一区二区三区在线看蜜臀| 欧美日韩视频专区在线播放| 国产真实乱对白精彩久久| 亚洲午夜三级在线| 亚洲少妇最新在线视频| 国产精品毛片久久久久久| 久久久久久久久久久99999| 欧美一级日韩不卡播放免费| 欧美体内she精视频| 久久大香伊蕉在人线观看热2| 国产精品hd| 一区二区精品国产| 色婷婷综合久久久久中文一区二区 | 欧美一级一区二区| 精品成人一区二区三区四区| 久久久天堂av| 亚洲午夜精品一区二区三区他趣| 亚洲九九爱视频| 久久99国产精品免费| 91尤物视频在线观看| 亚洲电影在线| 欧美日韩精品系列| 国产视频亚洲色图| 秋霞av亚洲一区二区三| 99九九99九九九视频精品| aa亚洲婷婷| 日韩一区二区视频在线观看| 亚洲另类在线一区| 成人av电影在线观看| 国产精品欧美日韩一区| 日韩无一区二区| 亚洲午夜电影网| 成人激情图片网| 欧洲一区二区av| 一个色妞综合视频在线观看| 国产99精品在线观看| 日本福利一区二区| 中文字幕一区二区三区色视频| 国产在线精品一区二区三区不卡| 99久久国产综合精品色伊| 美日韩精品免费| 国产精品白丝在线| jizzjizzjizz欧美| 欧美一卡二卡三卡四卡| 日本中文字幕一区二区视频 | 亚洲午夜激情网页| 亚洲午夜在线观看| wwww国产精品欧美| 国产馆精品极品| 欧美伦理电影网| 亚洲制服丝袜av| 99久久久国产精品免费蜜臀| 欧美特级限制片免费在线观看| 亚洲图片欧美视频| 日韩成人午夜电影| 国产日韩欧美三级| 亚洲一区二区视频| 亚洲一区二区三区精品视频| 日韩一级不卡| 亚洲成年人网站在线观看| 午夜在线观看免费一区| 欧美大肚乱孕交hd孕妇| 91性感美女视频| 国产亲近乱来精品视频| a级精品国产片在线观看| 欧美一区二区三区婷婷月色| 国产91精品入口| 日韩欧美在线一区二区三区| 精品一区二区三区视频 | 北条麻妃一区二区三区| 成人激情文学综合网| 精品国产凹凸成av人网站| 成人网在线播放| 精品久久久久久久久久久久包黑料| 国产福利电影一区二区三区| 日韩精品一区二区三区四区| 国产成人av电影在线观看| 国产亚洲一区字幕| 国产精品久久7| 在线欧美日韩精品| 成人精品小蝌蚪| 亚洲国产一二三| 欧美日韩在线精品一区二区三区激情 | 欧美日韩国产高清一区二区三区| 久久99深爱久久99精品| 久久久亚洲精品一区二区三区| 天堂蜜桃91精品| 日韩午夜激情av| 久久aⅴ国产紧身牛仔裤| 国产一区二区三区最好精华液| 国产精品午夜在线| 欧美人伦禁忌dvd放荡欲情| 午夜精品婷婷| 国产jizzjizz一区二区| 亚洲视频免费在线观看| 亚洲特色特黄| 亚洲欧美文学| 欧美片网站免费| 在线观看一区| 久久本道综合色狠狠五月| 久久男女视频| 在线电影欧美成精品| 欧美成人一区二区三区在线观看| 久久久亚洲综合|