QA@IT
«回答へ戻る

回答を投稿

entryを祖先のintro配下に絞ってみてはどうでしょう。

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                exclude-result-prefixes="xs">


    <xsl:template match="content">
        <xsl:param name="feat"><xsl:value-of select="@salename"/></xsl:param>
        <xsl:if test="$feat != ''">
            <xsl:variable name="featured_num" as="xs:string">
                <xsl:for-each select="ancestor::intro/entry">

                    <xsl:variable name="maker">
                        <xsl:value-of select="@name"/>
                    </xsl:variable>

                    <xsl:if test="$feat = $maker">
                        <xsl:value-of select="number(@num)"/>
                    </xsl:if>

                </xsl:for-each>
            </xsl:variable>

            <!-- 変数確認のため下記1行を挿入 -->
            <p><xsl:value-of select="$featured_num"/></p>
        </xsl:if>
        <xsl:if test="$feat = ''">
            <!-- <p>not found.</p> -->
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
 
1

2

3

4

 
1

2

3

4
entryを祖先のintro配下に絞ってみてはどうでしょう。

```xml
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                exclude-result-prefixes="xs">


    <xsl:template match="content">
        <xsl:param name="feat"><xsl:value-of select="@salename"/></xsl:param>
        <xsl:if test="$feat != ''">
            <xsl:variable name="featured_num" as="xs:string">
                <xsl:for-each select="ancestor::intro/entry">

                    <xsl:variable name="maker">
                        <xsl:value-of select="@name"/>
                    </xsl:variable>

                    <xsl:if test="$feat = $maker">
                        <xsl:value-of select="number(@num)"/>
                    </xsl:if>

                </xsl:for-each>
            </xsl:variable>

            <!-- 変数確認のため下記1行を挿入 -->
            <p><xsl:value-of select="$featured_num"/></p>
        </xsl:if>
        <xsl:if test="$feat = ''">
            <!-- <p>not found.</p> -->
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
```


```
 
1

2

3

4

 
1

2

3

4
```