3

刚开始学习xslt。只是想知道如何计算国际玩家的数量?另一件事是国际球员的平均身高?

<?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(//足球/球员/基于[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

4

1 回答 1

1

您的 XPath 需要稍作更改...

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>
于 2012-10-18T23:10:50.187 回答