我的xml
<article>
<section>
<title id="chapter-introduction">Introduction</title>
<para>Some text</para>
</section>
<section>
<title>Problem description</title>
<para>Some text</para>
<para>Please click <link linkend="chapter-introduction">here</link> to
go to the Introduction chapter.</para>
</section>
</article>
我的xsl
<xsl:template match="section/title">
<H2>
<xsl:attribute name="id">
<xsl:value-of select="@id" />
</xsl:attribute>
<xsl:value-of select="."/>
</H2>
</xsl:template>
<xsl:template match="link">
<u>
<a style="color:green" href="#{@linkend}">
<xsl:value-of select="."/>
</a>
</u>
</xsl:template>
我想在输出html文档中创建内部链接。我的模板在每个&#34;部分/标题&#34;中创建。属性id,但我不想使用值&#34; null&#34;获取id属性。
在输出中,我想获得<H2 id="chapter-introduction">Introduction</H2>
... <H2>Problem description</H2>
答案 0 :(得分:3)
简单的事情:
<xsl:template match="section/title">
<H2>
<xsl:copy-of select="@id" />
<xsl:value-of select="."/>
</H2>
</xsl:template>
答案 1 :(得分:1)
您可以通过测试检查是否存在<xsl:attribute>
属性来围绕id
,因此仅当<title>
实际包含该属性时才会对其进行处理:
<xsl:if test="@id">
<xsl:attribute name="id">
<xsl:value-of select="@id" />
</xsl:attribute>
</xsl:if>