簡體   English   中英

通過xml文件搜索文本的最佳方法

[英]Best way to search for text through xml files

我在一個根文件夾下的不同子目錄中有數千個xml文件。 我的要求是在所有這些xml文件中搜索文本,而不管它們在xml文件中的位置如何。

目前,我正在使用BufferedReader類讀取這些xml文件(我的代碼如下)

     while ((currentLine = br.readLine()) != null) {
        if (currentLine.contains("myTargetString")) {
              temp = currentLine;
            myArraylist.add(temp );
        }

但是我知道應該有一些搜索這些xml文件的最佳方法,但是卻找不到最佳的API或方法。

我得到一個字符串作為輸入,我的程序應該能夠搜索所有xml文件並返回文件名。 使用此BufferedReader會花費很多時間。

任何想法都會有所幫助。

因此,您可以在此處執行兩種可能的解決方案。 首先,對於每個文件,您都可以使用XML解析器(Java有很多API)進行解析,然后使用xpath查詢(例如// * [text()='您的查詢']之類的東西來查找與您的匹配的元素文字標准。

其次,您可以查看JamesB的建議,然后選擇像Lucene這樣的索引解決方案,其中為某個目錄中的每個文件建立索引,然后使用諸如Lucenes Search API之類的文件對它們進行搜索以找到您的文本字符串。

如果需要提高速度並且不能使用索引(我的建議是使用lucene),則可以使用舊的遞歸grep命令grep -r <searchtext> <path>首先過濾輸入。 鏈接到Windows問題上的grep )。 然后使用Java解析生成的文件,以過濾掉誤報(注釋掉的塊,匹配的元素名稱,...)。 Grep是恕我直言,是在沒有索引的情況下在大量文件中查找文本的最快方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM