我需要将多个元素的值插入到一个 cdata 中...这是我的代码:
首先,我做了输出:
<xsl:output method="xml" encoding="UTF-8" intend="yes" cdata-section-elements="embassy" />
这是元素定义:
<xsl:element name="embassy">
<xsl:value-of select="Visa/visa_velv/visa_velv_name" />
<xsl:element name="br" />
<xsl:value-of select="Visa/visa_velv/visa_velv_address" />
<xsl:element name="br" />
<xsl:value-of select="Visa/visa_velv/visa_velv_city" />
</xsl:element>
这里是我需要的错误输出:
<embassy><![CDATA[Ambasada e Republikes se Cekise]]>
<br/><![CDATA[Rruga Skënderbej 10]]>
<br/><![CDATA[Tirana]]>
</embassy>
我需要这个输出:
<embassy>
<![CDATA[Ambasada e Republikes se Cekise<br/>Rruga Skënderbej 10<br/>Tirana]]>
</embassy>
我正在阅读 documentation但我找不到解决办法。感谢您的帮助:)
最佳答案
这个完整而简单的转换:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" cdata-section-elements="Embassy"/>
<xsl:strip-space elements="*"/>
<xsl:template match="visa_velv">
<Embassy>
<xsl:value-of select=
"concat(visa_velv_name,'<br/>',visa_velv_address,'<br/>',visa_velv_city)"/>
</Embassy>
</xsl:template>
</xsl:stylesheet>
应用于以下 XML 文档时:
<Visa>
<visa_velv>
<visa_velv_name>Ambasada e Republikes se Cekise</visa_velv_name>
<visa_velv_address>Rruga Skënderbej 10</visa_velv_address>
<visa_velv_city>Tirana</visa_velv_city>
</visa_velv>
</Visa>
产生想要的结果:
<Embassy><![CDATA[Ambasada e Republikes se Cekise<br/>Rruga Skënderbej 10<br/>Tirana]]></Embassy>
关于xslt插入cdata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12123287/