Я использую Freemarker в своем проекте для преобразования из одного XML-документа в другой.
Из-за дурацкого дизайна или выбора канонического формата сообщений наш поставщик решил внедрить некоторый XML в экранированные поля CDATA, вероятно, поскольку выбранный ими стандарт сообщений не поддерживает все типы расширений. По какой-то причине мне сейчас нужно покопаться в этом поле и выполнить несколько запросов xpath.
Скажите, т.е.:
<Invoice>
..
<Note><![CDATA[<?xml version="1.0" encoding="utf-8"?><a><b>Value</b></a>]]></Note>
</Invoice>
У кого-нибудь есть идея, как получить значение "a / b / text ()" в сценарии такого рода?
Я думал о том, чтобы попытаться очистить раздел CDATA вручную, а затем проанализировать его как XML, но я надеюсь, что Freemarker сможет сделать это для меня.