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

  显示原文与译文双语对照的内容
0 0

这是我的第一个帖子。 如果有点草率的话,抱歉。 所以我从 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>

当前这里代码将Adelie地打印一次。 这是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>

之前有很多标签

时间: 原作者:

0 0

我猜你想改变一下:


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

到;


 <xsl:apply-templates select="NAME"/>

或者只是简单地:


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

原作者:
...