通过Java代码搜索XML

问题描述:

我有大约30个具有适当格式和大量数据的xml文件。我想要搜索这些xml文件以获得特定的数据检索。你能建议任何网站或博客,我可以使用aguideline来解决我的问题。通过Java代码搜索XML

我需要在每个标签内部搜索用户提供的关键字。并且有时还会根据用户请求返回标签内的内容的特定标签名称。

例如:A.XML,B.XML,c.xml

inside a.xml 

<abc> 
some content 
</abc> 

用户可以搜索ABC该标签或该内容内的一些关键词。在这两种情况下,它都应该返回内容,或者如果多于一个匹配,则应该通过单击用户可以逐个查看它们来返回链接。

+1

搜索如果你有这些XML-S XSD文件类似SQL的语言 - 你可以使用JAXB。代码生成使用java/bin中的xjc工具。 – StKiller 2011-04-12 09:21:17

我建议你使用XPath,这是在XML文档中

http://www.ibm.com/developerworks/library/x-javaxpathapi.html

+0

+1 - Java SE 5中包含javax.xml.xpath API。 – 2011-04-12 10:57:51

+0

感谢Xpath非常简单且有帮助。 – JavaBits 2011-04-14 11:37:58

使用SAX解析器(无需在文档中来回加上大量数据,因此不使用DOM解析器)。

查看this link了解教程。

您可以将XML存储到XML数据库(例如eXist)中,然后使用XQuery查询它。

+0

如果我在应用程序中使用它,那么它不会是我猜测的有效方法。导致用户不会得到数据库支持。 – JavaBits 2011-04-12 10:02:11

+0

这里有两个方面:(1)用户如何在你的应用程序中输入查询? (2)您的应用程序如何执行该查询并将结果返回给用户?我的回答是针对方面(2):您可能会将您的XML存储在XML数据库中,然后使用XML数据库的Java API来查询它唱XQuery,获取结果并显示给用户(eXist也有RESTful API)。方面(1)是完全不同的事情:这是一个用户交互问题,以及如何让用户轻松指定查询。 – MarcoS 2011-04-12 10:14:48