我真的对这个问题感到头疼。我想创建一个带有XML摘录的超链接的项目符号列表。我可以创建项目符号列表,但我无法弄清楚如何将该部分组合在一起。
这是XML:
<list>
<listitem>1<hyperlink><url>page1.xml</url><name>Go to Page 1</name></hyperlink></listitem>
<listitem>2<hyperlink><url>page2.xml</url><name>Go to Page 2</name></hyperlink></listitem>
<listitem>3<hyperlink><url>page3.xml</url><name>Go to Page 3</name></hyperlink></listitem>
<listitem>4<hyperlink><url>page4.xml</url><name>Go to Page 4</name></hyperlink></listitem>
</list>
...到目前为止的XSL。超链接组件不起作用。通过尝试使其工作,它可能看起来有点凌乱。我希望“Go to Page n”成为超链接。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:output method="html" indent="yes"/>
<xsl:template match="list">
<DIV>
<UL><xsl:apply-templates /></UL>
</DIV>
</xsl:template>
<xsl:template match="listitem">
<DIV>
<LI><xsl:apply-templates /> </LI>
</DIV>
</xsl:template>
<xsl:template match="hyperlink">
<A>
<xsl:value-of select="hyperlink" />
</A>
</xsl:template>
<xsl:template match="hyperlink/url">
HREF='<xsl:value-of select="url" />'
</xsl:template>
<xsl:template match="hyperlink/name">
<xsl:apply-templates />
</xsl:template>
目前的结果是:
** 1。 HREF ='page1.xml'转到第1页
HREF ='page2.xml'转到第2页
HREF ='page3.xml'转到第3页
HREF ='page4.xml'转到第4页 **
我需要的是类似于HTML的HTML:
<A HREF='page1.xml'>Go to Page 1</A>
任何帮助表示赞赏!
答案 0 :(得分:0)
首先,您需要从DIV
模板中取出listitem
(因为LI
需要直接在UL
内),您可以简化所有将hyperlink
内容归结为一个模板
<xsl:template match="hyperlink">
<A href="{url}">
<xsl:value-of select="name"/>
</A>
</xsl:template>