xslt 计数相同内容的不同内容 [英] xslt counting different content of the same content
本文介绍了xslt 计数相同内容的不同内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
刚开始学习xslt.只是想知道如何计算国际玩家的数量?还有就是国际球员的平均身高?
just started studying xslt.just want to know how would count the number of international based players? Another thing is the average height of he international players?
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="soccer.xslt"?>
<footballclub>
<player>
<based>international</based>
<height>5.5</height >
<build>medium</build>
<age>24</age>
</player>
<player>
<based>local</based>
<height>5.5</height >
<build>medium</build>
<age>24</age>
</player>
<player>
<based>international</based>
<height>5.5</height >
<build>medium</build>
<age>24</age>
</player>
<player>
<based>local</based>
<height>5.5</height >
<build>medium</build>
<age>24</age>
</player>
</footballclub>
尝试了以下方法;
count(//football/player/based[not(following::based='international')]) xslt:
count(//football/player/based[not(following::based='international')]) xslt:
<?xml version='1.0' encoding="utf-8"?>
<xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0" />
<xsl:template match="/">
<html>
<head >
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>bombers FC</title>
</head>
<body>
NUMBER OF INTERNATIONAL PLAYERS IS:<xsl:value-of select="count(//football/player/based[not(following::based='international')])"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
结果应该是:国际球员的数量是:2
the results should read : NUMBER OF INTERNATIONAL PLAYERS IS: 2
推荐答案
您的 XPath 需要稍作更改...
Your XPath needs to change a little...
XML 输入(更正为格式正确)
<footballclub>
<player>
<based>international</based>
<height>5.5</height>
<build>medium</build>
<age>24</age>
</player>
<player>
<based>local</based>
<height>5.5</height>
<build>medium</build>
<age>24</age>
</player>
<player>
<based>international</based>
<height>5.5</height>
<build>medium</build>
<age>24</age>
</player>
<player>
<based>local</based>
<height>5.5</height>
<build>medium</build>
<age>24</age>
</player>
</footballclub>
XSLT 1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0"/>
<xsl:template match="/">
<html>
<head>
<title>bombers FC</title>
</head>
<body>
<p>
<xsl:text>NUMBER OF INTERNATIONAL PLAYERS IS: </xsl:text>
<xsl:value-of select="count(footballclub/player[based='international'])"/>
</p>
<p>
<xsl:text>AVERAGE HEIGHT OF INTERNATIONAL PLAYERS IS: </xsl:text>
<xsl:value-of select="sum(footballclub/player[based='international']/height) div count(footballclub/player[based='international'])"/>
</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
输出
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>bombers FC</title>
</head>
<body>
<p>NUMBER OF INTERNATIONAL PLAYERS IS: 2</p>
<p>AVERAGE HEIGHT OF INTERNATIONAL PLAYERS IS: 5.375</p>
</body>
</html>
这篇关于xslt 计数相同内容的不同内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文