如何通过<xsl:value-of>标签进行正确选择?</xsl:value-of>

时间:2013-03-14 05:55:18

标签: html xslt abbr

以下是我的xml代码:

<abbr>
<title>world health organization</title>who</abbr>
was founded in 1948. 

在上面的代码我希望xslt输出为:

<abbr title="world health organisation">who<abbr>

我写了以下XSLT代码:

<xsl:template match ="abbr">
&lt;abbr title="<xsl:value-of select ="title"/>"&gt;
<xsl:value-of select ="."/>&lt;/abbr&gt;
</xsl:template>

我得到了:

<abbr title="world health organization">
world health organizationwho</abbr>

我哪里出错?

的输出
<xsl:value-of select"."/> 

world health organisationwho

(世界卫生组织+谁)

现在,我不想要第一部分。 我怎么能做到这一点?

1 个答案:

答案 0 :(得分:2)

由于titleabbr的孩子,title的文字是字符串值abbr的一部分。请试试这个:

<xsl:template match ="abbr">
  <abbr title="{title}">
    <xsl:apply-templates select="text()"/>
  </abbr>
</xsl:template>

顺便说一下,您在XSLT中使用xsl:output method="text"吗?如果您使用XSLT生成XML,那么您应该使用method="xml"。这就是XSLT的用途。