【问题标题】:Search XML files with xalan in Java在 Java 中使用 xalan 搜索 XML 文件
【发布时间】:2023-04-05 20:29:02
【问题描述】:

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

【问题讨论】:

    标签: java xml search xalan


    【解决方案1】:

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

    根据您的搜索查询的复杂程度,您可能希望使用真正的搜索引擎,例如Lucene。但是,我要说的是,在您执行此步骤之前,您需要对计划如何搜索进行大量思考,以便建立适当的索引。

    如果您的搜索要求更简单,您可以将文档加载到 DOM 中并使用XPath。我建议在迁移到 Lucene 之前尝试一下。

    你不需要 Xalan; JDK 带有 XML 解析器和 XPath 评估器。我写了几篇关于使用它们的文章:(parsing)、(xpath)。

    【讨论】:

      【解决方案2】:

      Xalan 是一个XSLT 处理器:它使您能够编写一个 XSL 样式表,将您的源 XML 文档转换成其他东西。

      当然可以写一个 XSL 转换然后你搜索转换的结果。

      另一种选择是使用 XML 解析器解析文档,然后使用 Lucene:参见 Parsing, indexing, and searching XML documents with Digester and Lucene

      您可能还想使用XPath。这完全取决于您想要实现的目标。

      【讨论】:

        【解决方案3】:

        听起来您正在寻找 Java 的 XPath 实现。这允许您构造一个搜索表达式并将其应用到一个或多个 XML 文档(通常必须已经过解析)。 Xalan 是一种选择,但还有其他选择。从 Java 5 开始的 Java 版本包括 XML 解析和 XPath 功能。如果您使用的是最新版本的 Java,并且想简单地解析和搜索一组 XML 文档,那么您可能不需要 Java SDK。

        有关“开箱即用”的 XPath 功能的良好(但有些过时)概述,请参阅本文:http://www.ibm.com/developerworks/library/x-javaxpathapi.html

        【讨论】:

          【解决方案4】:

          请参阅this SO post,了解如何使用contains() XPath 函数进行搜索。

          关于如何进行 XPath 查询的示例,我建议查看 Java XPath documentation。这是他们提供的示例代码:

          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

          【讨论】:

            猜你喜欢
            • 2014-03-22
            • 2023-01-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-28
            • 1970-01-01
            相关资源
            最近更新 更多