首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xslt插入cdata

xslt插入cdata
EN

Stack Overflow用户
提问于 2012-08-25 23:31:48
回答 2查看 6.5K关注 0票数 3

我需要将几个元素的值插入到一个cdata中...下面是我的代码:

首先,我做了输出:

代码语言:javascript
复制
<xsl:output method="xml" encoding="UTF-8" intend="yes" cdata-section-elements="embassy" />

下面是元素定义:

代码语言:javascript
复制
<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>

下面是我需要的不好的输出:

代码语言:javascript
复制
<embassy><![CDATA[Ambasada e Republikes se Cekise]]>
  <br/><![CDATA[Rruga Skënderbej 10]]>
  <br/><![CDATA[Tirana]]>            
</embassy>

我需要以下输出:

代码语言:javascript
复制
<embassy>
  <![CDATA[Ambasada e Republikes se Cekise<br/>Rruga Skënderbej 10<br/>Tirana]]>
</embassy>

我在读documentation,但是我找不到解决方案。感谢您的帮助:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-26 00:36:51

这个完整而简单的转换:

代码语言:javascript
复制
<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,'&lt;br/>',visa_velv_address,'&lt;br/>',visa_velv_city)"/>
     </Embassy>
 </xsl:template>
</xsl:stylesheet>

在以下XML文档上应用时的

代码语言:javascript
复制
<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>

会产生想要的结果:

代码语言:javascript
复制
<Embassy><![CDATA[Ambasada e Republikes se Cekise<br/>Rruga Skënderbej 10<br/>Tirana]]></Embassy>
票数 1
EN

Stack Overflow用户

发布于 2012-08-26 00:24:17

如果您确实需要或者想要转义标记,那么使用

代码语言:javascript
复制
<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"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12123287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档