以下是我的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">
<abbr title="<xsl:value-of select ="title"/>">
<xsl:value-of select ="."/></abbr>
</xsl:template>
我得到了:
<abbr title="world health organization">
world health organizationwho</abbr>
我哪里出错?
的输出
<xsl:value-of select"."/>
是
world health organisationwho
(世界卫生组织+谁)
现在,我不想要第一部分。 我怎么能做到这一点?
答案 0 :(得分:2)
由于title
是abbr
的孩子,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的用途。