使用XPath选择包含撇号的字符串

时间:2012-06-28 08:59:05

标签: xslt-1.0 xpath-1.0

为了通过XSLT生成CSS,我使用以下表达式:

<xsl:param name="default-font-family" select="'Times New Roman'" />

这会产生字符串Times New Roman而不是'Times New Roman',这是我在CSS中使用所需的。试图在&apos;&#x27;中包含字体名称不起作用:

<xsl:param name="default-font-family" select="'&apos;Times New Roman&apos;'" />
<xsl:param name="default-font-family" select="'&#x27;Times New Roman&#x27;'" />

有人可以帮助我找到适当的表达吗? 非常感谢提前!

2 个答案:

答案 0 :(得分:1)

声明包含和撇号使用的变量,或在开始和结束参数标签之间输入文本。示例如下:

<xsl:variable name="apostrophe">
  <xsl:text>'</xsl:text>
</xsl:variable>

<xsl:param name="default-font-family" select="concat($apostrophe, 'Times New Roman', $apostrophe)" />

或者简单地说:

<xsl:param name="default-font-family">
  <xsl:text>'Times New Roman'</xsl:text>
</xsl:param>

选择后两者都会给出您需要的结果。

答案 1 :(得分:1)

使用

 <xsl:param name="default-font-family" select='"&apos;Times New Roman&apos;"' />

这个简单的转换输出如此定义的参数

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>
 <xsl:param name="default-font-family" select='"&apos;Times New Roman&apos;"' />

 <xsl:template match="/">
     <xsl:value-of select="$default-font-family"/>
 </xsl:template>
</xsl:stylesheet>

当应用于任何XML文档(未使用)时,会生成所需的正确结果

'Times New Roman'