我想在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>
你能
做的,是这个....
<xsl:text disable-output-escaping="yes"><!DOCTYPE mlc_lts SYSTEM "mlc_lts.dtd"></xsl:text>
或者也许这个...
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE mlc_lts SYSTEM "mlc_lts.dtd">]]></xsl:text>
但是,您也可以在此处xsl:output
上使用 doctype-system
属性
<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 中的根元素。
声明一个变量并将其值传递给节点。
<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>