如何在xslt中添加带特殊字符的字符串

时间:2016-02-10 09:11:43

标签: xslt text xslt-1.0 special-characters add

我想在xsl中添加以下<!DOCTYPE mlc_lts SYSTEM "mlc_lts.dtd">,它包含特殊字符,因此无法解析它。

它试图像这样添加文字

<text><!DOCTYPE mlc_lts SYSTEM "mlc_lts.dtd"> </text>

它不起作用。打击是我的代码:

<connection_param>
    <mlc_props_file>
        <file_full_path>./fs/public/mxres/mxmlc/mlc_properties.mxres</file_full_path>
    </mlc_props_file>
</connection_param>

2 个答案:

答案 0 :(得分:2)

你能做什么,是这个......

<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE mlc_lts SYSTEM "mlc_lts.dtd"&gt;</xsl:text>

或许这......

<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE mlc_lts SYSTEM "mlc_lts.dtd">]]></xsl:text>

但是,您也可以使用doctype-system此处的xsl:output属性

 <xsl:output method="xml" doctype-system="mlc_lts.dtd" />

例如,试试这个XSLT

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" doctype-system="mlc_lts.dtd" />

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

但是,如果您在问题中将其应用于XML,则会生成此

<!DOCTYPE connection_param SYSTEM "mlc_lts.dtd">

其中connection_param是XML中的根元素。

答案 1 :(得分:-1)

声明一个变量并将其值传递给节点。

<xsl:variable name = "filepath" select = '"./fs/public/mxres/mxmlc/mlc_properties.mxres"'/> 

<connection_param>
    <mlc_props_file>
        <file_full_path><xsl:value-of select="$filepath"/></file_full_path>
    </mlc_props_file>
</connection_param>