1

現在のノード属性を値として使用して、xml の名前 name と照合しようとしています。xml ノードはハンドルと同じ名前です。ハンドルに対応する名前の異なる複数のノードがあります。

さまざまな名前のさまざまなノードが多数あるため、大規模な選択ステートメントを書きたくありません。内部の xpath を見てくださいapply-template- 動作していませんが、そのようなことを行う方法はありますか?

<xsl:for-each select="data/navigation/page">
    <xsl:element name="{@handle}">
        <xsl:attribute name="id"><xsl:value-of select="current()/@id"/></xsl:attribute>
        <xsl:value-of select="name"/>
        <xsl:apply-templates select="/data/[current()/@handle]" mode="page"/>
    </xsl:element>
</xsl:for-each>
4

1 に答える 1

3
<xsl:apply-templates select="/data/[current()/@handle]" mode="page"/>

これは構文的に正しくありません。ロケーション ステップを述語で開始することはできません

おそらく、次のようなものが必要です。

<xsl:apply-templates select="/data/*[name()=current()/@handle]" mode="page"/>
于 2013-01-06T04:52:19.817 に答える