mkp.yieldUnescaped не работает - PullRequest
       12

mkp.yieldUnescaped не работает

1 голос
/ 04 июня 2010

Я действительно застрял здесь. Я создаю XML-документ с Groovy 1.7, и все работает, за исключением одного раздела, когда он не должен.

Я начинаю так:

            triadDoc = new XmlSlurper().parse(xmlTriadMessageDocumentPath)
            writer = new StringWriter()
            xmlBuilder = new StreamingMarkupBuilder()
            writer = xmlBuilder.bind {mkp.yield triadDoc}

, который прекрасно работает. Затем я добавляю в документ вот так:

            triadDoc.TriadPayload.Payload[0] = "<![CDATA[" + xmlBuilder.bind {mkp.yieldUnescaped dto.getCcdDoc()} + "]]>"

Это не работает так, как я хочу - я получаю следующее:

            & lt;![CDATA[& lt;ClinicalDocument& gt;... (added extra blank to the escape sequences)

Может кто-нибудь сказать мне, что я делаю не так? Я искал подсказку по всему Интернету. Спасибо !!

Ответы [ 2 ]

2 голосов
/ 05 июня 2010

вам нужно передать весь блок CDATA, чтобы получить Unescaped

 mkp.yieldUnescaped( "<![CDATA[.....
0 голосов
/ 04 июня 2010

ПРИМЕЧАНИЕ. Секция CDATA в документе игнорируется анализатором.

Может быть, это то, что заставляет эту вещь пропустить.

четыре символа должны быть вместе для того, чтобы получить значения «<» и «>».

<! [CDATA [<ClinicalDocument> ...

...