Ich muss meine Eingabe XML mit XSLT transformieren. Es enthält, CDATA und ich muss Elemente aus CDATA extrahieren und dann muss ich das Tag umbenennen.XSLT Transformation und CDATA
Unten ist mein Eingang xml:
<getArtifactContentResponse>
<return>
<![CDATA[
<metadata>
<overview>
<name>scannapp</name>
<developerId>developer702</developerId>
<stateId>2</stateId>
<serverURL>dddd</serverURL>
<id>cspapp1103</id>
<description>scann doc</description>
<hostingTypeId>1</hostingTypeId>
</overview>
</metadata>
]]>
</return>
</getArtifactContentResponse>
Und die erwartete Ausgabe ist:
<?xml version="1.0" encoding="UTF-8"?>
<metadata >
<information>
<name>scannapp</name>
<developerId>developer702</developerId>
<stateId>2</stateId>
<serverURL>ddddd</serverURL>
<id>cspapp1103</id>
<description>scann doc</description>
<hostingTypeId>1</hostingTypeId>
</Information>
</metadata>
XSLT Ich benutze ist unten:
<xsl:output method="xml" version="1.0" encoding="UTF-8" />
<xsl:template match="/">
<xsl:value-of select="//ns:getArtifactContentResponse/ns:return/text()" disable-output-escaping="yes"/>
</xsl:template>
<xsl:template match="overview">
<Information>
<xsl:apply-templates select="@* | node()" />
</Information>
</xsl:template>
Mit diesem Ich bin in der Lage das auszuüben CDATA, aber das Element "Übersicht" wird nicht in "Information" umbenannt.
Transformed xml ist unter:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<overview>
<name>scannapp</name>
<developerId>developer702</developerId>
<stateId>2</stateId>
<serverURL>dddddd</serverURL>
<id>cspapp1103</id>
<description>scann doc</description>
<hostingTypeId>1</hostingTypeId>
</overview>
</metadata>
Kann mir jemand sagen, wie ich den Tag nach der Extraktion des CDATA umbenennen? Ich verstehe nicht, was ich hier vermisse?
Vielen Dank im Voraus
Wenn nur XSLT Version 1.0 verfügbar ist, müssen Sie ein weiteres XSLT auf der Ausgabe Ihrer ursprünglichen XSLT ausführen, um die gewünschte Ausgabe zu erzeugen. Der Inhalt von CData wird als reiner Text betrachtet, so dass er nicht wie ein normales XML-Fragment von XSLT verarbeitet werden kann. – har07
Related: 1. [Konvertieren Sie ein XML-Element, dessen Inhalt in CDATA ist] (http://stackoverflow.com/questions/2067116/convert-an-xml-element-whose-content-isinside-cdata), 2. [XML aus CDATA mit XSL transformieren] (http://stackoverflow.com/questions/18612639/transform-xml-from-cdata-using-xsl) – har07
Nicht klar für mich. Können Sie das bitte anhand des obigen Beispiels erklären? – krishh