0

「BusLocationLinks」という名前のコンポーネントを作成しました。このコンポーネントには、ビジネスの名前と、作成した地図の座標が格納されています。

同じスキーマ(BusLocationsLinks)を持つ50近くのビジネスロケーションがあり、その名前のすべてのコンポーネントコンポーネントの要素「ビジネス名」のみをリストしたいと思います。私はすべてを試しましたが、すべてを表示させることはできません。何かアドバイス?

これが私の現在のコードです:

 <xsl:template name="BusLocationLinks">
      <xsl:for-each select="BusLocationLinks/BusinessName">
    <li class="active">
      <xsl:value-of select="BusinessName" />
    </li>
      </xsl:for-each>
 </xsl:template>

私のxmlコードは次のようになります。

<BusLocationLinks>
    <BusinessName>Star Property</BusinessName>
</BusLocationLinks>
4

2 に答える 2

2

XML が表示されない場合、問題を診断することは困難です。ただし、次のような構造になっている可能性があります。

<BusLocationLinks>
    <BusinessName>name1</BusinessName>
    <BusinessName>name2</BusinessName>
    <BusinessName>name3</BusinessName>
</BusLocationLinks>

その場合は、次のように XSLT を調整する必要があります。

<xsl:template name="BusLocationLinks">
  <xsl:for-each select="BusinessName">
    <li class="active">
      <xsl:value-of select="." />
    </li>
  </xsl:for-each>
</xsl:template>
于 2012-09-21T01:25:20.877 に答える
1

命令の本体はxsl:for-each、コンテキスト ノードを、選択されたノード セット内のノードの 1 つになるようにリセットします (for-each の本体が評価されるたびに異なるノードになります)。

あなたの例では、これは for-each の本体内で、現在のノードがBusLocationLinks/BusinessName選択した要素の 1 つであることを意味します。BusinessNameループは、コンテキストノードの子の値を含む、それぞれのリスト項目要素を作成します (出力を確認してください。そこに表示されると思います) 。コンテキスト ノードは式BusLocationLinks/BusinessNameと一致するため、一致するノードの値を探していますBusLocationLinks / BusinessName / BusinessName。式に一致するノードがない場合はBusLocationLinks / BusinessName / BusinessName、空liの要素が取得されます。

試してみてください<xsl:value-of select="."/>

于 2012-09-21T00:05:51.037 に答える