0

私は本当にこれで頭を悩ませています。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。ハイパーリンク コンポーネントが機能しません。それを機能させるための私の試みでは、少し乱雑に見えるかもしれません。「ページ 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>

どんな助けでも大歓迎です!

4

1 に答える 1

0

まず、テンプレートDIVから を取り出す必要があります ( は の内部で直接終了する必要があるため)。すべてのものを 1 つのテンプレートに単純化できます。listitemLIULhyperlink

<xsl:template match="hyperlink">
  <A href="{url}">
    <xsl:value-of select="name"/>
  </A>
</xsl:template>
于 2013-03-21T18:35:32.780 に答える