2016-07-29 15 views
0

Ich stehe vor einem Problem mit der Verkabelung, wenn ich versuche, CDATA aus meiner Anfrage zu entfernen. Es funktioniert gut in meiner lokalen IDE, aber nicht in DataPower. Die Anforderung ist, dass das CDATA-Tag entfernt werden sollte, wenn es im XML-Code gefunden wird, oder sonst nichts tun sollte. XML-Input-:Entfernen von CDATA aus XML in DataPower

<response status="200"> 
    <CustomELearningVO> 
     <ClassListVO> 
      <![CDATA[ 
<CLASS_TAB_OBJ> 
<CLASS_TAB> 
<CLASS_OBJ> 
<ClassId>123456</ClassId> 
<ClassName>Sample Class1</ClassName> 
<Status>Not Attempted</Status> 
<Link>link</Link> 
<PlayEnable>Y</PlayEnable> 
</CLASS_OBJ> 

<CLASS_OBJ> 
<ClassId>56789</ClassId> 
<ClassName>Sample Class2</ClassName> 
<Status>Failed</Status> 
<Link>link2</Link><PlayEnable>Y</PlayEnable> 
</CLASS_OBJ> 

<CLASS_OBJ> 
<ClassId>56788</ClassId> 
<ClassName>Sample Class3</ClassName> 
<Status>Failed</Status> 
<PlayEnable>N</PlayEnable> 
<PlayMessage>"Course cannot be played as Certfication subscribed to Course has Expired"</PlayMessage> 
</CLASS_OBJ> 

</CLASS_TAB> 
</CLASS_TAB_OBJ> 
]]> 

     </ClassListVO> 
     <eBSErrorCode>0</eBSErrorCode> 
     <eBSErrorMessage>SUCCESS</eBSErrorMessage> 
    </CustomELearningVO> 
</response> 

XSL ich CDATA entfernen bin mit:

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

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


<xsl:template match="text()"> 

    <xsl:value-of select="." disable-output-escaping="yes" /> 
</xsl:template> 

</xsl:stylesheet> 
+0

haben Sie alternative Stylesheets ausprobiert? Arbeiten Sie ? möglicherweise eine der Optionen hier https://stackoverflow.com/questions/3708055/extract-cdata-using-xslt? –

+0

Ich habe das auch versucht, aber bisher kein Glück :( – Sammy

+0

es ist durchaus möglich, dass Ihr Prozessor nicht unterstützt 'disable-output-escaping' - es ist nicht erforderlich, dies durch die XSLT-Spezifikation zu tun. –

Antwort

0

das Problem behoben wurde ein Stylesheet verwendet, die auf serialisierten Daten von XML funktioniert.