1

私はアイテムリストを持っていて、アイテムごとにそれをURLにしたいと思っています。

リスト:

 <root>
   <tags>
     <tag>open source</tag>
     <tag>open</tag>
     <tag>advertisement</tag>
     <tag>ad</tag>
   </tags>
 </root>

XSLT:

<xsl:template match="*">
    <div class="tags">
      <xsl:for-each select="/post/tags/tag">
          <a href="#">
            <xsl:value-of select="//tag"/>
          </a>
      </xsl:for-each>
    </div>
</xsl:template>

出力:

  <div class="tags"> 
    <a href="#">open source</a> 
    <a href="#">open source</a> 
    <a href="#">open source</a> 
    <a href="#">open source</a> 
  </div> 

私は何を間違っていますか?

4

2 に答える 2

5

正しいことを行うより XSLT の方法は、「タグ」テンプレートを追加し、オリジナルを変更することです。

<xsl:template match="*">
    <div class="tags">
        <xsl:apply-templates select="tag" />
    </div>
</xsl:template>

<xsl:template match="tag">
      <a href="#">
        <xsl:value-of select="."/>
      </a>
</xsl:template>
于 2009-05-09T21:51:50.990 に答える
4

value-of 式で行っていることは、xml ドキュメント内のすべてのタグ ノードを選択することです。

<xsl:value-of select="//tag"/>

その結果、最初に選択したノードのみが値に使用されます。

代わりに以下を使用できます。

<xsl:value-of select="."/>

ここで、select="." for-each から現在のノードを選択します。

于 2009-05-09T21:26:30.520 に答える