使用EventFilter
和StreamFilter
使用 StAX 为不同的事件类型进行自定义转换我感到被迫进入程序实现 - 提取这些事件并处理它们,过滤这些事件并且处理它们,而不是将所有结果重新组合起来并返回。
SAX 似乎有一个非常好的功能 - 基于XMLFilters的可链接过滤器。
我希望保持基于StAX的实现,但是以某种方式合并或模拟来自SAX的可链式过滤器。
这可以通过合理的努力来完成吗?我是否已经错过了一个实现?
由于项目限制,我必须坚持使用JDK,所以请不要建议使用不同的库作为答案,但请随意建议使用评论 - 我很想知道那里有什么。
答案 0 :(得分:4)
查看EventReaderDelegate
和StreamReaderDelegate
。这些类将允许您包装父事件或流阅读器,以便您可以插入您想要的任何逻辑。
答案 1 :(得分:0)
虽然您可以使用代理,但我认为SAX优于Stax的极少数领域之一是构建效率模块化管道的能力。 Stax更适用于递归下降方法,以及部分数据绑定(可以遍历流;手动块到JAXB,继续,非常简单,功能强大)。