繁体   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