3

1つの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>

ドキュメントを読んでいましたが、解決策が見つかりません。助けてくれてありがとう:)

4

2 に答える 2

1

この完全で単純な変換:

<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ドキュメントに適用した場合:

<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-25T16:36:51.323 に答える
1

マークアップを本当に必要とする、またはエスケープしたい場合は、

<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"あなたはすでに持っています。

于 2012-08-25T16:24:17.370 に答える