Я использую Woodstox для обработки XML, который содержит некоторые объекты (в первую очередь >
) в значении одного из узлов. Чтобы использовать крайний пример, это примерно так:
<parent> < > & " ' </parent>
Я испробовал множество различных параметров конфигурации как для WstxInputFactory (IS_REPLACING_ENTITY_REFERENCES
, P_TREAT_CHAR_REFS_AS_ENTS
, P_CUSTOM_INTERNAL_ENTITIES
...), так и для WstxOutputFactory, но независимо от того, что я пробовал, вывод всегда что-то вроде этого:
<parent>nbsp; < nbsp; > & " ' nbsp;</parent>
(>
преобразуется в >
, <
остается прежним,
теряет &
...)
Я читаю XML с помощью XMLEventReader, созданного с помощью
XMLEventReader reader = wstxInputFactory.createXMLEventReader(new StringReader(fulltext));
после настройки WstxInputFactory.
Есть ли способ настроить Woodstox так, чтобы он просто игнорировал все объекты и выводил текст точно так же, как он был во входной строке?
>
(и'
и"
) во входных данных XML на что-то вроде@@@HACKY_REPLACEMENT_FOR_GT@@@
, а затем замените его обратно после завершения обработки. Это, вероятно, наименее элегантное/эффективное решение, но я просто не мог тратить на него больше времени. Надеюсь это поможет! :) - person luthier   schedule 27.08.2020