欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

怎樣使用XML引擎XQEngine_Xml教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:實例解析XPath串函數和XSLT
XPath(XML Path language)是一種處理XML文檔段的語言。XSLT(Extensible Stylesheet Language Transformations,可擴展樣式表語言轉換)使用XPath描述表達式和地址路徑控制節點選取。XSLT可以將XML

最近我一直在尋找XML搜索工具,我編寫的應用程序需要定期的搜索一些有關聯的XML文件,我本來的意思是為了看一看文件中是否有與我想要的數據匹配的數據,但是有時候,我也想把找到的這些數據輸出出來。一開始,我試用了一下XSLT和XPath,想通過把搜索的問題轉化成使用XSLT能夠解決的問題,但是經過一段時間的試驗,我發現,使用XSLT并沒有真正解決我想要處理的搜索問題,因為我想要輸出的數據是使用逗號隔開的數,而XSLT不能滿足這個要求,而且XLST也不能提供全文搜索功能。然后我想嘗試一下使用XML查詢語言(XQL),來看看能不能解決,所以我仔細的著了一下XQL的各種版本的實現,很巧,正好發現一個叫XQEngine的小工具能解決這個問題,所以,在本文中我想介紹一下如何使用XQEngine來在你的XML文件中搜尋你想要找的字符串數據。

XQEngine可以在www.fatdog.com網站下找到,它是一個JavaBean,使用一個SAX解析器來索引一個或多個XML文檔,然后你就可以在這些文檔中進行復合式搜索了。它所使用的搜索語言是XQL的超集,與XPath有相似的語法。

使用XQEngine的Java類必須實現一個result()方法,完成搜索后,引擎將調用這個方法把搜索結果傳到result()方法中,可以使用三種顯示數據的格式來輸出數據結果。使用命令行參數指明你所需要的搜索參數,比如說你可以指明一個文件假如含有stop這個詞,就不會被索引;又如你可以在參數中命令引擎忽略那些少于指定子數的詞。

下面,我給出了一個使用XQEngine的例程,現在讓我們來分析一下。首先,main()方法實例化一個搜索引擎:XmlEngine engine = new XmlEngine(),然后它從命令行中取得文件名、返回結果格式和搜索請求這三個參數,再使用各種配置方法來設置引擎,接著調用setSaxParserName()方法來設置SAX解析器的全名,因為我們使用的是Xerces解析器,所以要用到 "org.apache.xerces.parsers.SAXParser"。然后我們就需要設置搜索參數,再本例中,我們將不索引數字或任何少于3個字符的詞。在你下載到的XQEngine的API文檔當中會有詳細的配置參數說明,所以在此我就不細說如何配置參數了,請大家自己參閱相關文檔。最后,setDocument()方法指定XQEngine將要索引或搜索的XML文件。當然,如果你想要索引多個文件的話,只需設置幾個相應的setDocument()方法就可以了。

從下面的代碼中我們還可以看到,XQEngine引擎將用三種不同的格式返回搜索結果:STANDARD、SUMMARY和CSV(使用逗號分開的數值)為了簡單起見,我為每種返回結果類型定義了一個數字來代替(1,2,3),然后使用相應的參數調用setListenerType()方法。我將在后面詳細介紹每一種返回結果類型。還有個方法printSessionState()用來輸出索引和引擎的信息,但是我沒有把它寫進例程中,所以上面的程序只會輸出搜索結果;下一步再調用addXQLResultListener()方法,并傳遞Search的一個實例,用來實現XQLResultListener的接口;然后再把查詢字符串作為一個參數來調用setQuery方法,引擎就會開始執行查詢任務。等到查詢結束后,引擎調用Search類的result()方法,把查詢結果傳回,在我提供的例程中,result()方法只是簡單的把結果輸出出來。
代碼:

import java.io.*;
import com.fatdog.textEngine.XmlEngine;
import com.fatdog.textEngine.exceptions.*;
import com.fatdog.textEngine.query.XQLResultListener;

public class Search implements XQLResultListener
{
public static void main( String[] args )
{
XmlEngine engine = new XmlEngine();
String searchFile = args[0];
String searchType = args[1];
String query = args[2];
try { file://配置引擎
engine.setSaxParserName( "org.apache.xerces.parsers.SAXParser");
engine.setMinIndexableWordLength( 3 );
engine.setDoIndexNumbers( false );
engine.setDocument( searchFile );


if (searchType.equals("1")) {
engine.setListenerType(
XmlEngine.STANDARD_LISTENER);
}
else if (searchType.equals("2")) {
engine.setListenerType(
XmlEngine.SUMMARY_LISTENER);
}
else {
engine.setListenerType(
XmlEngine.CSV_LISTENER);
}
}
catch( MissingOrInvalidSaxParserException e ){
System.out.println(
"缺少或不可用的 SAX解析器" );
return;
}
catch( FileNotFoundException e ) {
System.out.println(
"不能找到 XML 文件: ");
return;
}
catch( CantParseDocumentException e ) {
System.out.println(
"不能解析 XML 文件: ");
return;
}
// engine.printSessionStats();
engine.addXQLResultListener( new Search() );
try {
engine.setQuery( query );
}
catch( InvalidQueryException e ) {
System.out.println(
"不可用的查詢請求: " e.getMessage() );
return;
}
}
public void results( String xqlResults )
{
System.out.println( xqlResults );
}
}


 
好,我們已經把一個使用XQEngine的程序編寫出來了,那么就讓我們來運行這段代碼,在編譯這段代碼之前,我們需要下載到XQEngine和SAX解析器。我是從xml.apache.org上下載到Xerces解析器的。我使用的操作系統是Windows 2000 Professional,JDK為1.3版,好,搞定這些以后就跟我來設置CLASSPATH吧,在"環境變量"中修改CLASSPATH,添加"c:\xql\XQEngine.jar;c:\xql\antlr.jar; c:\xerces\xerces.jar"。現在就可以編譯代碼了,不過為了能夠運行程序,我們還需要一個XML文件,我使用了Apache Tomcat里的web.xml文件作為演示。前面我也介紹過了,我們使用1,2,3來分別代替三種返回查詢結果格式:

1、使用STANDARD_LISTENER (數字1)和查詢項"//welcome-file-list/welcome-file",C:\xql\xql1>java Search web.xml 1 "//welcome-file-list/welcome-file"

Parser.installSaxParser:

<org.apache.xerces.parsers.SAXParser>
installed successfully
1: indexing web.xml
Query: ( // ( / welcome-file-list welcome-file ) )
3 hit(s) for file://welcome-file-list/welcome-file
<?xml version="1.0"?>
<xql:result
query="//welcome-file-list/welcome-file"
hitCount="3"
elemCount="3"
docCount="1"
xmlns:xql="http://www.fatdog.com/ Standard_Listener.html">
<welcome-file>
index.jsp
</welcome-file>
<welcome-file>
index.html
</welcome-file>
<welcome-file>
index.htm
</welcome-file>
</xql:result>

上面的例子中,查詢項要求找到任何"welcome-file-list"元素的所有的"welcome-file"子元素。請注意,搜索的結果基本上是從原XML文檔中摘錄出來的,不能夠建立搜索結果和原文檔之間的關系。SUMMARY_LISTENER(2)返回類型則有些不同,它包括一個"docID"號和一個"elemlx"號,這樣就能夠把結果和原文檔聯系起來了。

如下是返回結果的示例:


C:\xql\xql1>java Search web.xml 2
"//welcome-file-list/welcome-file"
Parser.installSaxParser: <org.apache.xerces.parsers.SAXParser>
installed successfully

1: indexing web.xml

Query: ( // ( / welcome-file-list welcome-file ) )

3 hit(s) for file://welcome-file-list/welcome-file

<?xml version="1.0"?>
<xql:result
query="//welcome-file-list/welcome-file"
hitCount="3"
elemCount="3"
docCount="1"
xmlns:xql="http://www.fatdog.com/
Summary_Listener.html">
<welcome-file xql:docID="0" xql:elemIx="270"/>
<welcome-file xql:docID="0" xql:elemIx="271"/>
<welcome-file xql:docID="0" xql:elemIx="272"/>
</xql:result>

我前面也說過,對于我的應用程序來說,最重要的是返回使用逗號隔開的返回結果,所以CSV_LISTENER(3)就很有用了,它能夠返回一個使用使用逗號隔開的結果,如下:

C:\xql\xql1>java Search web.xml 3
"//welcome-file-list/welcome-file"
Parser.installSaxParser:
<org.apache.xerces.parsers.SAXParser>
installed successfully

1: indexing web.xml

Query: ( // ( / welcome-file-list welcome-file ) )

3 hit(s) for file://welcome-file-list/welcome-file

3,3,1,0
0,270,welcome-file
0,271,welcome-file
0,272,welcome-file

當然,XQEngine還有很多很強大的功能,在此我不可能一一介紹,它所附帶的文檔中有豐富的源程序和使用方法,你可以對照著自己學習使用,當然,如果你愿意的話你甚至還可以開發出一個GUI程序,文檔中就自帶了一個基于GUI的搜索程序:SwingQueryDemo,你可以看一看研究研究。

分享:如何編寫結構完整的XML文檔
一個XML文檔如果符合一些基本的規范,那它就是結構規范的。XML格式有一套比HTML簡單的解析規則,允許XML解析器不需要外部描述或了解數據含義就可以解析XML數據。 起始標簽和結束

來源:模板無憂//所屬分類:Xml教程/更新時間:2009-05-19
相關Xml教程
jizz免费一区二区三区| 欧美一区二区三区影院| 国产成人a v| 五月久久久综合一区二区小说| 亚洲婷婷在线视频| 国内揄拍国内精品| jizz大全欧美jizzcom| 国产特级aaaaaa大片| 99精品国产在热久久下载| 在线欧美日韩国产| 99在线观看视频网站| 丰满少妇在线观看资源站| 91成人短视频在线观看| zzijzzij亚洲日本少妇熟睡| 亚洲欧洲在线看| 精品国产一区二区三区在线| 国产成人无码一区二区在线播放| 国产精品久久久久久久久妇女| 亚洲超丰满肉感bbw| 国产精品夜间视频香蕉| 中国黄色片视频| 亚洲人成网站在线在线观看| 97se亚洲国产综合在线| 久久精品国产成人| 久久精品一区二| 亚洲精品无遮挡| 国产真实乱偷精品视频免| 亚洲美女视频网站| 999久久欧美人妻一区二区| 成人一二三四区| 亚洲欧美成人综合| 精品蜜桃在线看| 波多野结衣激情| 无码人妻一区二区三区免费| 日韩视频不卡| 欧美一级二级在线观看| 五月天色一区| 日本中文字幕在线观看视频| 亚洲激情网址| 精品日韩在线一区| 色哟哟免费网站| 91av久久久| 蜜臀99久久精品久久久久久软件| 亚洲免费电影一区| 男人日女人逼逼| 色欲久久久天天天综合网| 日韩成人在线观看视频| 国产欧美一区二区三区沐欲 | 欧美 激情 在线| 风流少妇一区二区三区91| 国产乱淫av一区二区三区| 在线播放日韩| **欧美大码日韩| 成人综合国产精品| 国产99在线 | 亚洲| 国产乱子伦精品无码码专区| 久热精品在线| 亚洲欧洲xxxx| 国产视频一区二区三区在线播放| 裤袜国产欧美精品一区| 久久综合色鬼综合色| 青青a在线精品免费观看| 国产人妻人伦精品1国产丝袜 | 亚洲精品视频免费观看| 91探花福利精品国产自产在线| 国精产品视频一二二区| 午夜精品一区二区三区国产 | 欧美freesex交免费视频| 欧美一区二区三区公司| 成人小视频在线观看免费| 蜜桃在线一区二区| 99re在线视频这里只有精品| 性色av一区二区怡红| 欧美亚洲精品一区| 亚洲一区二区三区免费看| 一区二区视频免费观看| 精品在线你懂的| 欧美成人精品一区二区| 超碰人人cao| 日韩欧美黄色| 欧美视频在线一区| 国产av第一区| 手机看片一区二区三区| 久久日韩精品一区二区五区| 国产精品免费久久久久久| 日韩精品久久久久久久的张开腿让| 99久久精品国产亚洲精品| 欧美一卡二卡三卡| 国产美女在线一区| gogo亚洲高清大胆美女人体| 亚洲天堂福利av| 国产日韩一区欧美| 免费视频网站在线观看入口| 国产乱子伦一区二区三区国色天香| 欧美激情中文字幕在线| 久久久无码人妻精品一区| 99久久99视频只有精品| 欧美精品一区二区蜜臀亚洲| 北条麻妃在线一区| 粉嫩av国产一区二区三区| 亚洲成av人影院| 亚洲精品在线免费看| 亚洲av无码国产精品永久一区| 久久久久久久久久电影| 91免费国产网站| 天天操天天摸天天干| 理论电影国产精品| 91高潮精品免费porn| 成人免费视频入口| 一本综合精品| 欧美精品手机在线| 中文字幕有码在线播放| 99精品免费| 欧美成人精品一区二区| 国精产品一区二区三区| 亚洲第一黄色| 久久精品国亚洲| 日本二区在线观看| 最新亚洲一区| 美女999久久久精品视频| 一级黄色性视频| 在线不卡视频| 久久综合久久美利坚合众国| 娇妻被老王脔到高潮失禁视频| 影音先锋中文字幕一区二区| 欧美www在线| 波多野结衣家庭教师在线观看| 亚洲一区网站| 欧美国产视频一区二区| fc2ppv在线播放| 日本成人中文字幕| 日本久久中文字幕| 日韩av片在线播放| 高清不卡一二三区| 亚洲一区二区三区视频播放| 中文字幕一区二区人妻| 久久男人中文字幕资源站| 国模精品一区二区三区| 朝桐光av在线一区二区三区| 亚洲同性gay激情无套| 一本久久a久久精品vr综合| 日韩av首页| 在线观看免费成人| 熟妇人妻va精品中文字幕| 日韩高清影视在线观看| 亚洲国产黄色片| 台湾佬美性中文| 欧美精品三级| 欧美成人网在线| 国产一区二区视频在线观看免费| 国内成人免费视频| 国产在线高清精品| 国产美女免费看| 亚洲欧美视频在线观看视频| 手机看片日韩国产| 精品中文字幕一区二区三区四区 | 亚洲高清av一区二区三区| 午夜片欧美伦| 欧美日韩福利电影| 久久国产一级片| 99久久国产免费看| 欧美xxxx黑人又粗又长密月| 中文字幕在线直播| 福利电影一区二区三区| 99re热精品| 免费的黄色av| 色综合天天视频在线观看| 国产男女激情视频| 国产精品久久久久无码av| 久久久999精品免费| 久久黄色免费视频| 91在线精品一区二区| 久久综合婷婷综合| 国产精品原创视频| 日韩欧美中文一区二区| 亚洲av成人精品一区二区三区| 国产欧美亚洲一区| 国产精品久久久久久久久久久久久| 伊人成人在线观看| 亚洲午夜私人影院| 日本毛片在线免费观看| 第九色区aⅴ天堂久久香| 久久久极品av| 色播视频在线播放| 中文av字幕一区| 日韩一区二区高清视频| 自拍偷拍一区| 久久久精品欧美| 日本在线观看中文字幕| 国产偷v国产偷v亚洲高清| 中文字幕一区二区三区有限公司| 国产精品巨作av| 一区二区三欧美| 激情五月少妇a| 国产夜色精品一区二区av| 色中文字幕在线观看| 欧美色图婷婷| 精品国产拍在线观看| 国产大片中文字幕| 国产精品美日韩| 国产原创中文在线观看| 三区四区不卡| 欧美一区二区三区精品电影| 在线观看亚洲国产| 岛国av午夜精品| 国产成人在线综合| 久久久久网站| 国产成人精品福利一区二区三区 | 欧美一级日韩一级| 国精产品一区一区三区免费视频| 国产精品一区免费视频| 色99中文字幕| 免费看成人人体视频| 最近2019年中文视频免费在线观看| 久久精品国产亚洲av无码娇色 | 91精品亚洲| 亚洲激情影院| 1769国产精品| 精品国产伦一区二区三区| 在线观看免费一区| 菠萝菠萝蜜网站| 国产福利一区二区三区视频| 性欧美.com| 国产一区毛片| 97精品在线观看| 超碰人人人人人人| 91麻豆精品久久久久蜜臀| 一区二区三区四区免费| 97久久超碰国产精品电影| 免费观看亚洲视频| 亚洲在线久久| 国产一区二区色| 精品九九久久| 一本色道久久88精品综合| 看片网址国产福利av中文字幕| 亚洲国产欧美另类丝袜| 巨乳女教师的诱惑| 国产伦精品一区二区三区视频青涩 | 精品蜜桃传媒| 黑人久久a级毛片免费观看| 久久97久久97精品免视看| 91精品中文字幕| 337p亚洲精品色噜噜| 国产日韩精品中文字无码| 中文字幕+乱码+中文字幕一区| 一本久道中文无码字幕av| 久久美女性网| 日韩欧美亚洲在线| 精品一二三区| 国产精品久久中文| 亚洲成人高清| 免费av在线一区| 精品久久久免费视频| 精品久久人人做人人爽| 精品人妻在线播放| 精品久久久久久国产91| 在线观看日韩精品视频| 久久久久久电影| 免费看污污网站| 国内精品免费**视频| 蜜桃视频成人在线观看| 欧美精品国产一区| 好吊色欧美一区二区三区视频| 人体久久天天| 国产精品久久国产精品99gif| 成人在线视频观看| 精品国产欧美成人夜夜嗨| 99精品国产99久久久久久97| 精品国产99国产精品| 久久黄色精品视频| 欧美日韩色综合| 老湿机69福利| 黑人精品xxx一区一二区| 精品成人无码一区二区三区| 综合久久久久综合| 亚洲av无码一区东京热久久| 久久久久久久久免费| www.超碰97.com| 成人的网站免费观看| 国产成人a亚洲精v品无码| 蜜桃视频一区二区三区在线观看| 樱空桃在线播放| 亚洲一区激情| 在线码字幕一区| 亚洲日韩成人| 亚洲欧美日韩在线综合| 欧美三级第一页| 日本视频一区二区不卡| 伊人青青综合网| 蜜桃999成人看片在线观看| 国产韩国精品一区二区三区| 国产精品国色综合久久| 在线观看欧美理论a影院| 成人国产亚洲精品a区天堂华泰| 亚洲精品18| 国产va免费精品高清在线| 久久99成人| 国产成人精品电影| 亚洲欧洲国产精品一区| 日韩美女视频中文字幕| 亚洲一级大片| 国产精品网红直播| 欧美一级二级三级视频| 成人久久久久久| 国产精品日韩精品中文字幕| 99视频在线播放| 日韩精品四区| 欧美13一14另类| 1024日韩| 蜜桃视频成人在线观看| 久久裸体视频| 国产精品又粗又长| 国产精品一级在线| 欧美伦理片在线观看| 91麻豆精品一区二区三区| 无码人妻一区二区三区精品视频| 国产精品美女视频| 亚洲AV无码国产成人久久| 亚洲福利电影网| 免费在线观看h片| 欧美人妖巨大在线| 看黄色一级大片| 亚洲另类欧美自拍| 免费看av毛片| 欧美日本在线视频中文字字幕| 日韩毛片网站| 国产精品久久久久久久久久新婚| 欧美调教在线| 国产成人亚洲欧美| 国产综合精品一区| 蜜桃网站在线观看| 国产自产2019最新不卡| 天天爽人人爽夜夜爽| 久久久久久久一区| 无套内谢大学处破女www小说| 亚洲成人在线免费| 国产一级片久久| 日韩美一区二区三区| 国产精品人人爽| 久久精品亚洲精品| 成人激情久久| 91免费国产视频| 欧美国产免费| www.亚洲成人网| 成人激情黄色小说| 天天躁日日躁狠狠躁av麻豆男男| 亚洲精品视频在线观看免费| 黄色一级片中国| 欧美videos中文字幕| 国产成人免费看一级大黄| 九九久久国产精品| av成人app永久免费| 成人自拍网站| 在线亚洲成人| 男人操女人免费| 国产精品污www在线观看| 免费黄色激情视频| 日韩视频永久免费| 亚洲精品久久久久久动漫器材一区| 欧美激情网站在线观看| 国产成人精品福利| 精品日产一区2区三区黄免费 | 欧美在线啊v一区| 最近中文字幕在线视频| 日韩在线观看你懂的| 国产精品视频一区视频二区| 91视频网页| 国产农村妇女毛片精品久久莱园子| 国产 福利 在线| 中文字幕国产一区| 久久久久99精品成人片试看| 亚洲激情国产精品| 成人看片在线观看| 91社区国产高清| 日韩天堂av| 超碰在线人人爱| 亚洲影院久久精品| 啦啦啦免费高清视频在线观看| 中文字幕日韩av电影| 视频一区视频二区欧美| 久久久精品动漫| 久久电影网电视剧免费观看| 亚洲视频天天射| 色综合久久88色综合天天| 97视频免费在线| 欧美一级片久久久久久久| 日韩在线第七页| 日本福利视频一区| 国产精品无人区| 日本少妇久久久| 色婷婷**av毛片一区| 国产精品调教视频| 性刺激综合网| 99r精品视频| 五月天婷婷色综合| 亚洲天堂影视av| 国产麻豆精品一区| 97在线看福利| 国产精品毛片久久| 欧美在线观看成人|