在Java中过滤XML节点XSLT或Parser

时间:2009-08-17 12:20:29

标签: java xml filtering

我发布了SAP返回的大量XML数据。其中,我只需要几个节点,可能是返回数据的30%。

谷歌搜索后,我知道我可以通过以下两种方式过滤节点:

  1. 应用XSLT模板 - 在我的网站上看到了一些不错的解决方案。

  2. 使用解析器 - 使用JDOM或SAX解析器。

  3. 这是“过滤XML节点”的有效方法吗?

    感谢

3 个答案:

答案 0 :(得分:4)

SAX解析器将是最快且最有效的(因为您不需要将整个文档读入内存并进行处理)。

XSLT可能是一个简单的解决方案,因为您需要的是一个identity transform(复制输入文档),其中包含一些模板以复制您想要的位。

就个人而言,我会使用SAX解析器。

答案 1 :(得分:2)

StAX API可能符合您的需求 - 请查看StreamFilterEventFilter。它具有优于SAX的优势,因为它的拉模型使您在解析所需的所有数据时更容易退出处理,而无需借助抛出异常等人工机制。

答案 2 :(得分:0)

如果您的雇主能够负担得起SAP,那么他们当然可以负担Saxon,这是一个可以处理任意长度流的XSLT处理器。