Xml XSL重复相同的值,但计算不同值的正确数目

Xml XSL重复相同的值,但计算不同值的正确数目,xml,xslt,repeat,Xml,Xslt,Repeat,这是我的第一篇文章。对不起,如果有点马虎。因此,我正在从WFB.xml编译一个列表。它有很多关于世界上所有国家的信息。我试图得到每个国家的名称,并打印在我的h2标签。但是,它将打印列表中的第一个名称,直到所有位置都已排序 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/&

这是我的第一篇文章。对不起,如果有点马虎。因此,我正在从WFB.xml编译一个列表。它有很多关于世界上所有国家的信息。我试图得到每个国家的名称,并打印在我的h2标签。但是,它将打印列表中的第一个名称,直到所有位置都已排序

<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>

<xsl:variable name="config"
    select="document('fb_config.xml')"/>
<xsl:variable name="wfb"
    select="document('world_factbook_2008.xml')"/>

<xsl:template match="/">
    <xsl:text disable-output-escaping='yes'>
    &lt;!DOCTYPE html&gt;&#xA;
    </xsl:text>
    <html>
    <head>
        <title>
        <xsl:text>CIA World Factbook</xsl:text>
        </title>
    </head>
    <body>
        <xsl:variable name="wfbYear"
            select="$wfb/WFB/@YEAR"/>

        <h1>
            <xsl:value-of select="concat('CIA World ', $wfbYear, ' Factbook')" />
            <xsl:text></xsl:text>
        </h1>


        <xsl:if test="$config/config/order/@output = 'asc'">
<!-- DIV TEST -->   <xsl:apply-templates select="$wfb/WFB/PLACE" >
                <xsl:sort order="ascending"/>
            </xsl:apply-templates>
        </xsl:if>
        <xsl:if test="$config/config/order/@output = 'dec'">
<!-- DIV TEST -->   <xsl:apply-templates select="$wfb/WFB/PLACE" >
                <xsl:sort order="descending"/>
            </xsl:apply-templates>
        </xsl:if>

    </body>
    </html>
</xsl:template>

<xsl:template match="PLACE">
        <div style="border:1px solid black;">
            <h2>
                <xsl:apply-templates select="$wfb/WFB/PLACE/NAME"/>
            </h2>
        </div>
</xsl:template>
<xsl:template match="NAME">
    <xsl:value-of select="current()"/>
</xsl:template>

</xsl:stylesheet>

!DOCTYPE html
;
中央情报局世界概况
目前,该代码反复打印Adelie Land。这是xml文件中的第一个名称

我认为我的错误在于:

<xsl:template match="PLACE">
        <div style="border:1px solid black;">
            <h2>
                <xsl:apply-templates select="$wfb/WFB/PLACE/NAME"/>
            </h2>
        </div>
</xsl:template>

如果我拿出我的模板匹配的名字,那么它会在一行中打印出所有的名字,直到所有的地方都被排序

有什么建议吗

以下是XML页面在阅读时的外观:

<WFB YEAR="2008">
  <PLACE ID="Adelie_Land" PART_OF="French_Southern_and_Antarctic_Lands">
    <NAME>Adelie Land</NAME>

阿德利地

前面有很多标签

我猜您想更改:

 <xsl:apply-templates select="$wfb/WFB/PLACE/NAME"/>


或者只是为了:

<xsl:value-of select="NAME"/>


发布示例输入XML如何?不必是全部名单……我真傻。因为我的文档(),我真的想得太多了。谢谢@如果你的问题得到了回答,请通过接受答案来结束它。
<xsl:value-of select="NAME"/>