0

在我的场景中,我有两个 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)?
  • 在 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

谢谢!

4

1 回答 1

0

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

- 编辑 -

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

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