0

我有一个这样的xml输入,

<xml>
<xrefline>&laquo;personne&raquo;&mdash;<cite.query w-pinpoint-page="xyz_abc_1_">abc(1)</cite.query></xrefline>
<xrefline>&laquo;abc&raquo;&mdash;<cite.query w-pinpoint-page="xyz_abc_1_">abc(1)</cite.query></xrefline>
</xml>

当我使用 xslt 在外部参照线的内容周围添加 cdata 时,所有实体都更改为实际字符,有没有办法让输出保持不变?

所以我得到的输出是

<xml>
 <xrefline position="1"><![CDATA[«personne»—
         <cite.query w-pinpoint-page="xyz_abc_1_">123(1)</cite.query>]]>
      </xrefline>
 <xrefline position="2"><![CDATA[«abc»—
         <cite.query w-pinpoint-page="xyz_abc_1_">123(1)</cite.query>]]>
      </xrefline>
</xml>

我正在寻找的愿望输出是

<xml>
 <xrefline position="1"><![CDATA[&laquo;personne&raquo;&mdash;
         <cite.query w-pinpoint-page="xyz_abc_1_">123(1)</cite.query>]]>
      </xrefline>
 <xrefline position="2"><![CDATA[&laquo;abc&raquo;&mdash;
         <cite.query w-pinpoint-page="xyz_abc_1_">123(1)</cite.query>]]>
      </xrefline>
</xml>

这是样式表

<xsl:stylesheet version="2.0" >
  <xsl:output indent="yes" method="xml" encoding="UTF-8"></xsl:output>
<xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>
<xsl:template match="xrefline">
<xrefline>
        <xsl:attribute name="position">
          <xsl:value-of select="count(../preceding-sibling::xrefline)+1"/>
        </xsl:attribute>
        <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
            <xsl:copy-of select="node()" ></xsl:copy-of>
        <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
   </xrefline>
</xsl:template>

任何提示...

4

0 回答 0