我应该使用哪种Java结构来存储XML记录?

时间:2011-07-05 21:34:36

标签: java xml web-services data-structures soap

好的,所以我对Java仍然相对较新,而且我取得了很好的进展。我的任务是:

  1. 构建SOAP请求以启动与Web服务服务器的通信(完成)
  2. 检索生成的XML,其中包含必须在步骤3(完成)
  3. 中使用的唯一会话ID
  4. 使用唯一会话ID创建另一个SOAP请求,该会话ID返回另一组包含100行记录的XML(已完成)
  5. 从这些结果中提取特定数据(正在进行中)
  6. 我的问题是,将这些数据存储在Java中的最佳方法是什么,以便我可以轻松地对其进行排序?我的XML的数据部分如下所示:

    <RawData>
    <item value="1" anothervalue="2" yetanothervalue="3"/>
    <item value="4" anothervalue="5" yetanothervalue="6"/>
    <item value="7" anothervalue="8" yetanothervalue="9"/>
    </RawData>
    

    使用XPath和SimpleXPathEngine从XML检索特定值没有问题。但我真的很想能够将它存储在某种ResultSet类型结构中,以便我可以轻松地检索和操作它。我已经将ResultSet与SQL查询一起使用,所以我对它很熟悉,但是,我不确定如何在实际的数据库连接和查询之外使用它。处理这个问题的最佳方法是什么?

    提前致谢!

3 个答案:

答案 0 :(得分:4)

如果文档不是那么大,您可以使用DOM解析器来获取内存中的所有数据。这可能是org.w3c.domdom4jjdom

答案 1 :(得分:2)

因为您的数据看似简单且常规我个人使用JAXB - 您可以手动创建类或使用某些工具从XML模式生成它们。

通过这种方式,您可以轻松使用类的List,并可以使用常用的Java来获取数据或操作它,也可以轻松忽略java表示中不需要的字段,这样您的类只会涵盖您真正感兴趣的XML文件的那些部分。

答案 2 :(得分:2)

您可以将数据存储在仅限内存的数据库中。 hsqldb支持此功能。