1

以下是我的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

(世界卫生组织+世卫组织)

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

4

1 回答 1

2

由于title是 的子级abbrtitle的文本是 的字符串值的一部分abbr。请试试这个:

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

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

于 2013-03-14T06:10:38.237 回答