如何在Java中同时查询两个XML文件?

时间:2012-10-05 15:29:49

标签: java android xml-parsing android-xml

在我的场景中,我有两个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同时来自publishers.xml <publisher>文件所在地publishers.pubid=books.pubid

期望的输出(已处理):

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

- 编辑 -

由于Xquery似乎在Android上没有非常可靠的支持,我会看一个不同的选项:

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