2013-03-21 56 views
0

我真的用這個抓我的頭。我想創建一個帶有XML摘錄超鏈接的項目符號列表。我可以創建項目符號列表,但我無法弄清楚如何將部分組合在一起。XML - > XSL - >帶有超鏈接的項目符號列表

這裏是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。超鏈接組件不起作用。它可能看起來有點不整齊,通過我的努力使其工作。我希望「轉到第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

  1. HREF = 'page2.xml' 轉到第2

  2. HREF = 'page3.xml' 轉到第3

  3. HREF = 'page4.xml' 轉到頁4 **

我需要的是HTML類似於此:

<A HREF='page1.xml'>Go to Page 1</A>

任何幫助表示讚賞!

回答

0

首先,你需要採取DIVlistitem模板(因爲LI需要直接落得UL內),並且可以簡化所有hyperlink東西到一個模板

<xsl:template match="hyperlink"> 
    <A href="{url}"> 
    <xsl:value-of select="name"/> 
    </A> 
</xsl:template>