我需要将几个元素的值插入到一个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,但是我找不到解决方案。感谢您的帮助:)
发布于 2012-08-26 00:36:51
这个完整而简单的转换:
<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>发布于 2012-08-26 00:24:17
如果您确实需要或者想要转义标记,那么使用
<embassy>
<xsl:value-of select="Visa/visa_velv/visa_velv_name" /><![CDATA[<br/>]]><xsl:value-of select="Visa/visa_velv/visa_velv_address" /><![CDATA[<br/>]]><xsl:value-of select="Visa/visa_velv/visa_velv_city" />
</embassy>当然还有您已经拥有的cdata-section-elements="embassy"。
https://stackoverflow.com/questions/12123287
复制相似问题