После некоторой помощи с помощью этого веб-сайта и учебных пособий я научился синтаксическому анализу и XML-документу с использованием XSLT. У меня есть одна проблема. Я пытаюсь отобразить эти данные XML в таблице с отдельными столбцами для каждого атрибута игрока.
<bbgame> <- Root
<team vh="V" id="MSU" name="MISSOURI STATE" record="8-2">
<linescore line="24,36" score="60">
<lineprd prd="1" score="24"></lineprd>
<lineprd prd="2" score="36"></lineprd>
</linescore>
<player uni="01" code="01" name="Keith Pickens" checkname="PICKENS,KEITH" gp="1">
<stats fgm="1" fga="3" fgm3="0" fga3="0" ftm="2" fta="3" tp="4" blk="1" stl="1" ast="0" min="15" oreb="0" dreb="2" treb="2" pf="2" tf="0" to="2" dq="0"></stats>
<statsbyprd prd="1" fgm="0" fga="1" fgm3="0" fga3="0" ftm="0" fta="0" tp="0" blk="0" stl="0" ast="0" min="7" oreb="0" dreb="0" treb="0" pf="2" tf="0" to="1" dq="0"></statsbyprd>
<statsbyprd prd="2" fgm="1" fga="2" fgm3="0" fga3="0" ftm="2" fta="3" tp="4" blk="1" stl="1" ast="0" min="8" oreb="0" dreb="2" treb="2" pf="0" tf="0" to="1" dq="0"></statsbyprd>
</player>
</team>
</bbgame>
У меня две команды. Дома и В гостях определяются командой - vh = "V" или "H". Я только что включил одну команду для краткости. Я записал это соответствие шаблону в свою таблицу стилей. xsl:template match="команда//игрок">
<xsl:template match="team//player">
<xsl:for-each select="//player">
<table border="1">
<tr>
<td width="200px"><xsl:value-of select="@checkname"/></td>
<td width="50px"> <xsl:value-of select="@fgm"/> </td>
<td> <xsl:value-of select="@fga"/></td>
</tr>
</table>
</xsl:for-each>
</xsl:template>
Однако имена отображаются несколько раз, иногда кажется, что 30, а «fga» и «fgm» вообще не отображаются. Также, когда я пытаюсь вызвать шаблон с помощью отдельной команды, такой как <xsl:apply-templates select="team[@vh='v']//player"/>
, он тоже не работает.
Я использую: <xsl:apply-templates select="team//player"/>
в теле моего XSL для получения этого шаблона. Все остальные работают правильно, но я уверен, что это синтаксическая или логическая ошибка, которую я не могу понять. Спасибо за помощь. Этот веб-сайт был замечательным ресурсом.
РЕДАКТИРОВАТЬ: добавлен корень, чтобы прояснить любую путаницу.