欧美三区四区_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教程
国产亚洲激情视频在线| aa级大片欧美| 欧美一区二区三区不卡| 99理论电影网| www.免费av| 日韩在线免费| 国产精品1区2区| 日韩av综合中文字幕| 日韩高清国产精品| 免费黄色国产视频| 精品欠久久久中文字幕加勒比| 91麻豆免费视频| 久久天堂电影网| 日韩av片在线看| 国产三级视频在线播放| 99精品视频网| 3d动漫精品啪啪一区二区竹菊 | 欧美性生活大片视频| 91久久精品www人人做人人爽| 91av在线免费| 欧美高清一级片| 久久精品视频在线免费观看| 九九热99久久久国产盗摄| 亚洲中文字幕无码不卡电影| 97av免费视频| 老色鬼久久亚洲一区二区| 日韩欧美一级片| 亚洲高清在线播放| 亚洲日本视频在线观看| 国产精品红桃| 欧美日韩精品一区二区三区四区| 精品国产免费久久久久久尖叫| 视频国产一区二区| 久久成人av| 亚洲韩国一区二区三区| 成人看片人aa| 国产一区二区三区四区在线| 一区二区三区四区在线看| 亚洲精品日韩一| 成人欧美一区二区三区黑人| 亚洲综合色一区| 网红女主播少妇精品视频| 亚洲综合色婷婷| 国产欧美一区二区三区视频| 免费观看av网站| 四虎884aa成人精品最新| 亚洲午夜一区二区三区| 成人两性免费视频| 亚洲ⅴ国产v天堂a无码二区| 黑丝美女一区二区| 黑人巨大精品欧美一区二区一视频| 51国偷自产一区二区三区| 天堂资源在线视频| 日本高清免费电影一区| 欧美在线免费观看亚洲| 日韩精品电影网站| 天堂网免费视频| 午夜一级久久| 国产午夜精品麻豆| 日本久久久精品视频| 香蕉视频911| av毛片久久久久**hd| 欧美精品18videos性欧美| 国产伦理在线观看| 国产精品中文字幕制服诱惑| 亚洲国产欧美在线人成| 国产美女精品在线观看| 日韩网红少妇无码视频香港| 亚洲人人精品| 亚洲美女自拍视频| 久久综合伊人77777麻豆最新章节| 日韩福利一区| 国产精品女同一区二区三区| 国产精品一区二区3区| 一级免费黄色录像| 欧美一区不卡| 91精品国产福利| 国产视频在线观看网站| 人妻无码中文字幕| 久久亚洲精品小早川怜子| 国产精品久久久久久久久粉嫩av| 国产精品一区二区亚洲| 亚洲成av人片乱码色午夜| 日韩色在线观看| 人妻久久久一区二区三区| 熟妇高潮一区二区三区| 久久精品网站免费观看| 91网站免费观看| 国产精品第二十页| 日产国产高清一区二区三区| www.久久色.com| 国产精品嫩草69影院| 亚洲精品播放| 欧美夫妻性生活| 久久国产精品网| 韩国女主播一区二区| 一区免费观看视频| 精品国产乱码久久久久久蜜柚| 波多野结衣影片| 国产suv精品一区二区883| 欧美亚洲成人免费| 一区二区国产精品精华液| 精品动漫av| 中文字幕亚洲第一| 毛茸茸free性熟hd| 久久美女精品| 亚洲国产中文字幕在线观看| 中文字幕第100页| 欧美色资源站| 日韩欧美国产精品一区| www.日日操| 精品国产午夜肉伦伦影院| 欧美视频一区二区在线观看| 久操网在线观看| 日韩在线激情| 一本色道久久综合亚洲精品按摩| 色乱码一区二区三区熟女| 天天操天天操天天干| 亚洲婷婷在线视频| 日韩电影免费观看高清完整| 狠狠躁夜夜躁av无码中文幕| 中文字幕一区二区三| 精品中文字幕一区| 99久久久久久久| 国产欧美精品日韩区二区麻豆天美| 91精品国产高清久久久久久91裸体| 亚洲GV成人无码久久精品| 国产成人综合亚洲网站| 国产精自产拍久久久久久| www.国产高清| 丁香激情综合国产| 亚洲一区二区三区视频| 中文天堂在线资源| 国产欧美日韩在线看| 精品国产第一页| 亚洲精品国产手机| 亚洲黄色录像片| 99精品一区二区三区的区别| 免费在线成人激情电影| 色88888久久久久久影院野外| 日本欧美视频在线观看| aiai久久| 精品日韩成人av| 丰满人妻一区二区三区大胸| 羞羞色午夜精品一区二区三区| 亚洲一区999| theav精尽人亡av| 一本色道88久久加勒比精品| 久久久久女教师免费一区| 久久久久香蕉视频| 国产精品香蕉一区二区三区| 91视频8mav| 国产夫妻自拍av| 一区二区三区蜜桃| 久久久久久av无码免费网站下载| 成人网av.com/| 91精品国产综合久久香蕉的特点 | 精品黑人一区二区三区| 久久久久国产免费免费| 欧美日韩综合另类| 国产精品xxx| 在线成人免费视频| 涩多多在线观看| 欧美日本在线| 久久久久久久久久国产精品| 福利一区二区三区四区| 久久综合视频网| 麻豆传媒一区二区| 久久av日韩| 777xxx欧美| www.黄色网| 国产精品女主播一区二区三区| 欧美在线性视频| 亚洲视屏在线观看| 亚洲色图.com| 久久久久久免费看| 欧美理论电影大全| 色偷偷888欧美精品久久久| 美女的奶胸大爽爽大片| 成人99免费视频| 欧美另类网站| 91麻豆精品一二三区在线| 精品国免费一区二区三区| av直播在线观看| 精品一区二区三区免费视频| 国产91精品一区二区绿帽| 污视频网站在线播放| 在线观看网站黄不卡| 亚洲妇熟xx妇色黄蜜桃| 99精品国产99久久久久久福利| 日本精品免费观看| 国产农村妇女毛片精品| 午夜精品久久久久久不卡8050| 成人在线观看a| 91tv官网精品成人亚洲| 97激碰免费视频| 亚洲图片视频小说| 欧美日韩另类视频| 国产无遮挡猛进猛出免费软件 | 亚洲444eee在线观看| av免费在线播放网站| 亚洲欧美综合| 国产91在线播放精品91| 国产成人毛毛毛片| 色狠狠av一区二区三区| 可以看的av网址| 麻豆精品在线视频| 久久久久久久久久久久久久一区 | 国产三级国产精品国产国在线观看| 成年人午夜久久久| 亚洲欧美国产精品桃花| 欧美精品中文| 美女视频黄免费的亚洲男人天堂| av黄色在线看| 一区二区三区免费看视频| 国产天堂在线播放| 国产欧美精品| 亚洲尤物视频网| 国产精品一区二区免费福利视频 | 中文字幕免费视频观看| 亚洲在线免费播放| 日韩欧美国产片| 丝袜美腿成人在线| 好吊色欧美一区二区三区视频| 精品视频成人| 日韩中文字幕免费视频| 日本a级c片免费看三区| 黄色91在线观看| 中文字幕avav| 激情综合色播五月| 亚洲春色综合另类校园电影| 少妇精品久久久一区二区| 97在线精品国自产拍中文| 亚洲第一视频在线播放| 日韩欧美一二三四区| 制服丨自拍丨欧美丨动漫丨| 日本一区二区不卡视频| av免费中文字幕| 国产精品日韩| 国产偷久久久精品专区| 白白在线精品| 欧美激情视频在线免费观看 欧美视频免费一| 中文字幕永久在线视频| 欧美亚州韩日在线看免费版国语版| 国产麻豆天美果冻无码视频 | 亚洲色图欧美激情| 污视频网址在线观看| 美女任你摸久久 | 欧美日韩国产色综合一二三四| 国产色综合天天综合网| 日韩一区二区三区四区五区| 久久精品久久精品亚洲人| 亚洲一区二区视频在线播放| 欧美欧美午夜aⅴ在线观看| 五月天婷婷丁香网| 国产精品女同一区二区三区| 麻豆三级在线观看| 国内久久婷婷综合| 欧美一二三不卡| 亚洲久久一区| 蜜桃狠狠色伊人亚洲综合网站| 亚洲精品456| 国产精品免费网站| 色999韩欧美国产综合俺来也| 久久久99久久精品女同性| 99视频在线观看免费| 精品久久久久久久一区二区蜜臀| 麻豆一区二区三区精品视频| 亚洲第一综合色| 91精品人妻一区二区| 国产精品全国免费观看高清| 午夜xxxxx| proumb性欧美在线观看| 欧美污视频网站| 蜜臀av在线播放一区二区三区| 小说区视频区图片区| 欧美日韩1区| 欧美国产一区二区在线| 成人在线丰满少妇av| 96国产粉嫩美女| 国产欧美三级电影| 国产成人精品国内自产拍免费看| 91丨精品丨国产| 亚州精品天堂中文字幕| 欧美va在线| 精品中文字幕在线| 精品91久久| 欧美成人免费大片| 激情开心成人网| 欧美成人国产va精品日本一级| 午夜视频福利在线观看| 日韩在线观看免费高清| 三级视频在线看| xxxxx91麻豆| 五月婷婷丁香网| 久久亚洲精品视频| 欧美天堂视频| 欧美黑人性生活视频| 日韩久久一区二区三区| 久久69精品久久久久久久电影好 | 久久女同精品一区二区| 中日韩av在线播放| 99久久精品国产网站| www.51色.com| 国产亚洲精品bt天堂精选| 亚洲午夜精品在线观看| 国产人成一区二区三区影院| 中文字幕永久免费| 亚洲欧美自拍偷拍色图| jizz日本免费| 亚洲综合久久av| eeuss中文字幕| 日韩欧美福利视频| 国产女人18水真多毛片18精品| 日韩欧美一区二区在线| 免费一级片在线观看| 欧美日韩一级大片网址| av黄色在线看| 亚洲精品一区二区三区影院| ,一级淫片a看免费| 亚洲情综合五月天| 天天色天天操天天射| 中文字幕中文字幕在线一区| 日韩视频在线免费| 国产精品久久久久久免费| 亚洲无线码在线一区观看| 亚洲精品视频91| 久久精品小视频| 国产a亚洲精品| 日韩女在线观看| 欧美精美视频| 激情视频一区二区| 亚洲国产日本| 女人色极品影院| 国产电影精品久久禁18| 天天操精品视频| 亚洲女同一区二区| 亚洲色偷偷综合亚洲av伊人| 欧美日韩一区成人| 国产成人精品网| 亚洲欧美国产制服动漫| 亚洲色偷精品一区二区三区| 97成人精品区在线播放| 米奇精品关键词| 激情五月综合色婷婷一区二区| 在线欧美三区| 日韩精品―中文字幕| heyzo一本久久综合| 美女久久久久久久久| 午夜视频在线观看一区| 亚洲精品国产精品乱码| 日韩激情第一页| 天天摸天天碰天天爽天天弄| 26uuu日韩精品一区二区| 亚洲ab电影| 欧美日韩精品不卡| 日本欧美大码aⅴ在线播放| 五月婷婷丁香综合网| 国产精品成人在线观看| 久艹在线观看视频| 日韩一区二区不卡| 亚洲免费不卡视频| 91国内精品久久| 国产精品欧美三级在线观看| 日韩久久久久久久| 久久国产夜色精品鲁鲁99| 三日本三级少妇三级99| 亚洲国产人成综合网站| 国产精品午夜影院| 一区二区在线视频| 国产欧美视频在线| 99精品在线直播| 美女尤物久久精品| 99sesese| 亚洲国产精品久久人人爱蜜臀 | 精品69视频一区二区三区Q| 六月婷婷在线视频| 日本一区二区综合亚洲| 97成人资源站| 日韩经典中文字幕在线观看| 福利一区在线| 99中文视频在线| 视频在线观看91| 亚洲精品在线网址| 日韩欧美成人免费视频| 一区二区三区免费观看视频| 久久99久久亚洲国产| 台湾佬综合网| 精品久久中文字幕| 亚洲精品久久久久久国| 亚洲国产精品人久久电影| 韩日精品一区| 电影午夜精品一区二区三区| 日韩二区三区在线观看| 国产伦精品一区二区三区妓女下载 | 91亚洲永久免费精品| 欧美精品一卡| 欧美成人三级在线视频| 国产精品乱码一区二区三区软件 | 曰批又黄又爽免费视频|