如何打印<和>符号是文本的一部分..?

时间:2013-04-25 13:48:49

标签: xslt xslt-1.0

我无法想出输出字符串的方法,如:

<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 个答案:

答案 0 :(得分:6)

试试这个:

 <xsl:text disable-output-escaping="yes">&lt;xml version="1.0" encoding="UTF-8"&gt;</xsl:text>

答案 1 :(得分: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"/>

答案 2 :(得分: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 />

答案 3 :(得分:0)

放置此<xsl:text disable-output-escaping="yes">&lt;</xsl:text>