Xml XSL重复相同的值,但计算不同值的正确数目
这是我的第一篇文章。对不起,如果有点马虎。因此,我正在从WFB.xml编译一个列表。它有很多关于世界上所有国家的信息。我试图得到每个国家的名称,并打印在我的h2标签。但是,它将打印列表中的第一个名称,直到所有位置都已排序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"/&
<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'>
<!DOCTYPE html>

</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"/>