4

我只是想不出一种输出字符串的方法,例如:

<xml version="1.0" encoding="UTF-8">

这是我尝试过的:

<xsl:variable name="lessThan" select="&#x3C;"/>
<xsl:variable name="GreaterThan" select="&#x3E;"/>
    <xsl:value-of select="$lessThan"/>
    <xsl:text>xml version="1.0" encoding="UTF-8"</xsl:text>
    <xsl:value-of select="$GreaterThan"/>

但这是我得到的输出:

&lt;xml version="1.0" encoding="UTF-8"&gt;

我也尝试过这样的事情:

<xsl:text><xml version="1.0" encoding="UTF-8"></xsl:text>

但是编辑器根本不允许我这样做。它会抛出与结束标签匹配的错误

PS:我对xslt不太熟悉,所以即使这个问题听起来很幼稚,也请回复。

4

4 回答 4

7

尝试这个:

 <xsl:text disable-output-escaping="yes">&lt;xml version="1.0" encoding="UTF-8"&gt;</xsl:text>
于 2013-04-25T13:53:38.660 回答
3

要使您的测试 xslt 正常工作,您可以使用disable-output-escaping = "yes"

更改 xlst:

<xsl:variable name="lessThan" select="'&#x3C;'"/>
<xsl:variable name="GreaterThan" select="'&#x3E;'"/>
<xsl:value-of  disable-output-escaping = "yes" select="$lessThan"/>
<xsl:text>xml version="1.0" encoding="UTF-8"</xsl:text>
<xsl:value-of disable-output-escaping = "yes" select="$GreaterThan"/>

更新:只是猜测您尝试生成 xml 声明。

 <?xml version="1.0" encoding="utf-8"?>

这应该与xsl:output

<xsl:output method="xml" encoding="utf-8"/>
于 2013-04-25T14:01:48.093 回答
3

您不应该尝试手动生成 XML 声明。它应该由 XSLT 自动生成,只要您将输出方法指定为 XML 并且不指定omit-xml-declaration="yes"

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" encoding="utf-8" />

  <xsl:template match="/">
    <root />
  </xsl:template>
</xsl:stylesheet>

在任何输入上运行此 XSLT 时,结果是:

<?xml version="1.0" encoding="utf-8"?>
<root />
于 2013-04-25T14:09:04.780 回答
0

把这个<xsl:text disable-output-escaping="yes">&lt;</xsl:text>

于 2014-04-21T02:50:02.667 回答