簡體   English   中英

使用Java中的xalan搜索XML文件

[英]Search XML files with xalan in Java

我需要編寫一個java應用程序,在標記內執行關鍵字搜索,並從許多xml文件中執行實際數據。 從我在網上的研究中我感覺我必須使用xalan,但我無法弄清楚如何使用它或它做什么。 有人能指出我正確的方向嗎? 謝謝

您需要做的第一件事是確定您實際要搜索的數據。 您說“在標簽和實際數據中” - 這是否意味着您將對元素名稱進行關鍵字搜索? 或者其中的元素名稱和內容?

根據您的搜索查詢的復雜程度,您可能希望轉向真正的搜索引擎,例如Lucene 但是,我會說,在你采取這一步驟之前,你需要考慮如何計划搜索,以便建立一個合適的索引。

如果您的搜索要求更簡單,您可以將文檔加載到DOM並使用XPath 我建議在搬到Lucene之前嘗試一下。

你不需要Xalan; JDK附帶XML解析器和XPath評估器。 我寫了幾篇關於使用它們的文章:( 解析 ),( xpath )。

Xalan是一個XSLT處理器:它使您能夠編寫一個XSL樣式表,將源XML文檔轉換為其他內容。

當然可以寫一個XSL轉換,然后搜索轉換的結果。

另一個選擇是使用XML解析器解析文檔,然后使用Lucene :請參閱使用Digester和Lucene解析,索引和搜索XML文檔

您可能還想使用XPath 這一切都取決於你想要達到的目標。

我聽起來你正在尋找Java的XPath實現。 這允許您構造搜索表達式並將其應用於一個或多個XML文檔(通常必須已經解析)。 Xalan是一種選擇,但還有其他選擇。 從Java 5開始的Java版本包括XML解析和XPath功能。 如果您使用的是最新版本的Java,並希望簡單地解析和搜索一組XML文檔,那么除了Java SDK之外,您可能不需要任何其他內容。

有關“開箱即用”的XPath功能的良好(但有點過時)概述,請參閱此文章: http//www.ibm.com/developerworks/library/x-javaxpathapi.html

請參閱此SO帖子 ,了解如何使用contains() XPath函數進行搜索。

至於如何進行XPath查詢的示例,我建議查看Java 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

暫無
暫無

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

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