Всякий раз, когда я использую CDATA во входном XML-преобразовании, после преобразования значения XSLT-элемента CDTA повреждены - PullRequest
0 голосов
/ 14 февраля 2019

Я использую Mule3.7 Community Edition, я сталкиваюсь с проблемой разбора XML здесь:

В моих входных данных у меня есть значения элементов с CDATA, и я использую xslt для передачи XML,Я ожидаю, что мой выход положить XML Shoud также содержат CDATA.однако это не работает, это показывает урезанные данные везде, где у нас есть CDATA.Я пробовал с

<xsl:output cdata-section-elements="text"/>

, но все еще не работает, он показывает проблему продукта.

"Значение {cdata-section-elements} должно быть списком QNames в '{uri} local 'notation (java.lang.IllegalArgumentException) "

есть ли другие способы, которыми я могу разобрать этот xml.

<node>
    <subNode>
        <![CDATA[ HI THERE ]]>
    </subNode>
    <subNode>
        <![CDATA[ SOME TEXT ]]>
    </subNode>
</node>

Спасибо, Лакшми

1 Ответ

0 голосов
/ 14 февраля 2019

Вместо этого можно попробовать использовать имя элемента text() в XSLT 1.0 , как показано ниже:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output cdata-section-elements="subNode" />
<xsl:strip-space elements="*" />

<xsl:template match="node()|@*">
    <xsl:copy>
        <xsl:apply-templates select="node()|@*" />
    </xsl:copy>
</xsl:template>

Примечание: Если естьбольше элементов, кроме <subNode>, которые имеют CDATA, поместите их в cdata-section-elements через пробел .

...