我发布了SAP返回的大量XML数据。其中,我只需要几个节点,可能是返回数据的30%。
谷歌搜索后,我知道我可以通过以下两种方式过滤节点:
应用XSLT模板 - 在我的网站上看到了一些不错的解决方案。
使用解析器 - 使用JDOM或SAX解析器。
这是“过滤XML节点”的有效方法吗?
感谢
答案 0 :(得分:4)
SAX解析器将是最快且最有效的(因为您不需要将整个文档读入内存并进行处理)。
XSLT可能是一个简单的解决方案,因为您需要的是一个identity transform(复制输入文档),其中包含一些模板以复制您想要的位。
就个人而言,我会使用SAX解析器。
答案 1 :(得分:2)
StAX API可能符合您的需求 - 请查看StreamFilter或EventFilter。它具有优于SAX的优势,因为它的拉模型使您在解析所需的所有数据时更容易退出处理,而无需借助抛出异常等人工机制。
答案 2 :(得分:0)
如果您的雇主能够负担得起SAP,那么他们当然可以负担Saxon,这是一个可以处理任意长度流的XSLT处理器。