0

ID の生成中に HTML タグを出力する際に​​問題が発生しました。それぞれの ID を生成するために 2 つの for ループを作成しました<small>が、HTML を適切に生成する方法がわかりません。具体的には、段落段落太字ブロックの 2 番目の段落を印刷できません。どんな助けでも大歓迎です!

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="right.xsl"?>

<div>

  <ul>
    <li><a href="#d1e11">(5:30 - 7:30 p.m. Downtown)</a></li>
    <li><a href="#d1e17">(6:00 - 8:00 p.m. Burnaby)</a></li>
    <li><a href="#d1e23">(5:30 - 6:30 p.m. Downtown)</a></li>
  </ul>

  <h3>Info Sessions</h3>
  <a name="d1e11"></a>
  <p>Full-time Programs (CST, CIT Diplomas and BTech)</p>
  <p>March 8, 2012 </p>
  <b><small>(5:30 - 7:30 p.m. Downtown)</small></b>
  <br/>
  <br/>
  <a name="d1e17"></a>
  <p>Computing Part-time Studies</p>
  <p>March 28, 2012</p>
  <b><small>(6:00 - 8:00 p.m. Burnaby)</small></b>
  <br/>
  <br/>
  <a name="d1e23"></a>
  <p>HTP - Technical Web Designer (TWD)</p>
  <p>March 21, 2012</p>
  <b><small>(5:30 - 6:30 p.m. Downtown)</small></b>
  <br/>
  <br/>
</div>

XSLT ファイル

<xsl:for-each select="div/b">
  <li>
    <a href="#{generate-id(small)}">
      <xsl:value-of select="small"/>
    </a>
  </li>
</xsl:for-each>

</ul>
</div>
<h3>Info Sessions</h3>

<xsl:for-each select="div/b">
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>   
  <p><xsl:value-of select="preceding-sibling::p"/></p>  
  <a name="{generate-id(small)}"><xsl:value-of select="small"/></a>
  <hr/>
</xsl:for-each>
4

1 に答える 1

0

次のコードを検討してください。

<xsl:value-of select="preceding-sibling::p"/>

XSLT 1.0 では、xsl:value-of はノード セットの最初のノードの値を (ドキュメントの順序で) 出力し、他のノードは無視します。(したがって、XSLT 1.0 を使用していると思います)。式は先行するすべての兄弟を選択し、それらの最初のものを出力します。直前の兄弟だけを出力したいとします。

<xsl:value-of select="preceding-sibling::p[1]"/>
于 2012-05-29T21:07:22.020 に答える