Xalan - 用于挂钩转换事件的TransformerHandler

时间:2015-09-17 14:58:01

标签: java xslt xalan

我需要在Xalan转换期间挂钩事件触发器。

即。当找到一个节点时,正在处理它的字符串内容时,基本上是startElement(),endElement(),characters()等方法。

我已经创建了一个TransformerHandler实例,但我很难看到如何将它添加到Transformer ......

有没有人有我如何做到这一点的例子。

我一直在网上搜寻但找不到任何东西 - 也许我只是在寻找错误的东西......

非常感谢

1 个答案:

答案 0 :(得分:0)

根据您添加的评论

,监控XML SAX事件将无法提供您所需的信息
  

输出将是基于输入XML的HTML。我基本上需要跟踪输出文本的大小。例如,当我达到10k时,我需要触发一个事件。我还需要知道我当时的节点。

根据样式表的复杂性,变换器可能需要在处理开始之前将整个XML文件加载到内存中,如DOM树。

你需要2个钩子:

  1. 检测何时生成10k输出。
  2. 跟踪当时正在处理XSLT样式表的哪一部分。
  3. 对于#1,您唯一知道输出大小的位置在输出流中,因此您必须将FileOutputStream包裹起来,以监视​​大小。< / p>

    对于#2,您可以使用TraceListener执行此操作,监控SelectionEvent。我从未使用它,但它听起来像你在寻找。