2012-10-05 24 views
0

在我的场景中,我有两个XML文件,我想同时查询这些文件。如何在Java中同时查询两个XML文件?

文件1,publishers.xml

<publishers> 
    <publisher pubid="1" name="ABC" /> 
    <publisher pubid="2" name="RST" /> 
    <publisher pubid="3" name="XYZ" /> 
</publishers> 

文件2,Books.xml的

<books> 
    <book bkid="1" pubid="1" name="introduction to A" /> 
    <book bkid="2" pubid="3" name="introduction to B" /> 
    <book bkid="3" pubid="3" name="introduction to C" /> 
    <book bkid="4" pubid="2" name="introduction to D" /> 
</books> 

问题:

  • 有没有用Java/Android平台所提供的任何XML查询的事情(类似于LINQ)?
  • IN JAVA,我该怎么做? (我想从两个XML文件同时查询)

    SELECT book FROM books.xml JOIN publishers.xml ON publishers.pubid = books.pubid AND bkid = "2"

让我解释一下在“普通”英语:),节点<book>从Books.xml的选择其中属性bkid=2,并在同时<publisher>来自publishers.xml文件,其中publishers.pubid=books.pubid

所需的输出(处理):

Book ID: 2 
Book Name: introduction to B 
Publisher: XYZ 

谢谢!

+0

您可以使用Xpath来查询xml,请参阅:http://developer.android.com/reference/javax/xml/xpath/package-summary.html –

+0

Thankx Anis!我在网上看到的所有例子都涉及到一个xml文件。在我的情况下,我需要阅读两个XML文件,有条件地。 – wafers

+0

这个问题太难了吗?我尽我所能解释了这种情况。 :) – wafers

回答

0

这是常见的吗?不,它不是,但有时是必要的。我将按照StackOverflow answer中所述使用Xquery。当然,如果你可以合并文件,它会简化你的问题。

- 编辑 -

由于的Xquery似乎并没有对Android的非常坚实的支持,我想看看不同的选项:

  1. 合并文件一起:你可以拉两个然后将它们连接到一个新的父节点<root> xml files concat here </root>中,然后将此字符串转换为一个dom文档并使用xpath来解析它。
+2

我通读了教程和API,最后我发现它在Android上不可用。 – wafers

+0

这是很奇怪..检查了这一点:http://mxquery.org/?page_id=252 – JustinMorris

+0

感谢贾斯汀的链接,我已经完全通过该链接。我无法下载此页面上列出的jar文件(超时错误)。没有可用的支持,这个图书馆周围没有任何事情发生。不知道是否值得冒险并下载资源。似乎没有人在Stackoverflow上谈论它。 – wafers