Я анализирую XML с Digester. Часть его содержит содержимое, отформатированное в загадочных элементах псевдо-HTML XML, которые мне нужно преобразовать в PDF. Это будет сделано через Apache FOP. Следовательно, мне нужно получить доступ к элементу xml, который содержит элементы содержимого напрямую, и передать его в FOP. Для этого в Часто задаваемых вопросах по Digester указано, что либо
Оберните вложенный xml в CDATA
or
Если это невозможно сделать, вам нужно использовать NodeCreateRule для создания узла DOM, представляющего тег body и его дочерние элементы, а затем сериализовать этот узел DOM обратно в текст.
Поскольку это сторонний XML, подход CDATA
может быть реализован только через (другой) XSLT, что я не решаюсь сделать.
Похоже, эту проблему можно решить с помощью NodeCreateRule, но я не могу понять, как это сделать.
В документации указано, что NodeCreateRule
поместит узел в стек, однако я могу заставить его пройти только null.
Я попытался
digester.addRule(docPath + "/contents", new NodeCreateRule());
digester.addCallMethod(docPath + "/contents", "setContentsXML");
setContentsXML ожидает параметр Element.
Я также пробовал это и это безуспешно.
Я использую последнюю стабильную Digester. Был бы признателен за любой совет.
Обновление: я обнаружил ошибку . Результат в моей системе тоже нулевой. Я использую JDK 6u24.