xsl:for-each不循环内部元素

xsl:for-each does not loop inner elements

XML

    <authors>
        <author url="http://dl.acm.org/">Chung-Hwan Lim</author>
        <author url="http://dl.acm.org/">Seog Park</author>
        <author url="http://dl.acm.org/">Sang H. Son</author>
    </authors>

XSLT

<div class="authors">
    <xsl:for-each select="authors">
        <a style="vertical-align:middle">
            <xsl:attribute name="href">
                <xsl:value-of select="@url"/>
            </xsl:attribute>
            <xsl:value-of select="."/>
        </a>
    </xsl:for-each>
</div>

O/P

   <div class="authors"><a style="vertical-align:middle" href="">
                Chung-Hwan Lim
                Seog Park
                Sang H. Son
            </a></div>

问题是我期待三个 <a> 标签,但我只得到一个。这是为什么?为什么 `xsl:for-each' 不循环内部元素?我该如何解决这个问题?

如果要处理 author 个元素,则需要 select="authors/author".

您正在 select 处理 foreach 中的每个 authors 标记。你应该 select author 代替。喜欢<xsl:for-each select="authors/author">