用Java中的xalan搜索XML文件

用Java中的xalan搜索XML文件,java,xml,search,xalan,Java,Xml,Search,Xalan,我需要编写一个java应用程序,在标记和许多xml文件的实际数据中执行关键字搜索。从我的在线研究中,我觉得我必须使用xalan,但我不知道如何使用它或它的作用。谁能给我指一下正确的方向吗?谢谢听起来您正在寻找一个用于Java的XPath实现。这允许您构造一个搜索表达式并将其应用于一个或多个XML文档(通常必须对其进行解析)。Xalan是一种选择,但还有其他选择。以Java5开始的Java版本包括XML解析和XPath功能。如果您使用的是最新版本的Java,并且希望简单地解析和搜索一组XML文档,

我需要编写一个java应用程序,在标记和许多xml文件的实际数据中执行关键字搜索。从我的在线研究中,我觉得我必须使用xalan,但我不知道如何使用它或它的作用。谁能给我指一下正确的方向吗?谢谢

听起来您正在寻找一个用于Java的XPath实现。这允许您构造一个搜索表达式并将其应用于一个或多个XML文档(通常必须对其进行解析)。Xalan是一种选择,但还有其他选择。以Java5开始的Java版本包括XML解析和XPath功能。如果您使用的是最新版本的Java,并且希望简单地解析和搜索一组XML文档,那么除了Java SDK之外,您可能什么都不需要

有关“开箱即用”的XPath功能的良好(但有些过时)概述,请参阅本文:

请参阅如何使用
contains()
XPath函数进行搜索

关于如何执行XPath查询的示例,我建议查看。下面是他们提供的示例代码:

XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/widgets/widget";
InputSource inputSource = new InputSource("widgets.xml");
NodeSet nodes = (NodeSet) xpath.evaluate(expression, inputSource, XPathConstants.NODESET);

这将加载文件
widgets.xml
,并返回与表达式匹配的所有节点的
NodeSet

您需要做的第一件事是确定实际要搜索的数据。您说“在标记和实际数据中”——这是否意味着您将对元素名称进行关键字搜索?或者元素名和其中的内容

根据您的搜索查询有多复杂,您可能希望使用真正的搜索引擎,如。然而,我要说的是,在你采取这一步之前,你需要考虑一下如何计划搜索,以便建立一个合适的索引

如果搜索要求更简单,可以将文档加载到DOM中并使用。我建议在搬到Lucene之前试试这个

你不需要Xalan;JDK附带XML解析器和XPath计算器。我已经写了几篇关于使用它们的文章:(),()。

是一个处理器:它使您能够编写XSL样式表,将源XML文档转换为其他内容

当然,您可以编写XSL转换,然后搜索转换的结果

另一种选择是使用XML解析器解析文档,然后使用:请参阅

您可能还想使用。这完全取决于你到底想要实现什么