-1
我正在使用此algo
如何刪除xslt中的空值?
http://www.jenitennison.com/xslt/grouping/muenchian.html用於分組。我可以使用算法,但我面臨的一個問題。我有一個xml
我在其中應用Over
的分組。我能夠顯示我的數據。但有時@over成爲blank
..我不想顯示數據.. 這裏是我的代碼 http://xsltransform.net/pNmBxZY/1
改造
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="html" doctype-public="XSLT-compat" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:key name="node-by-over" match="Node" use="@Over" />
<xsl:template match="/Innings">
<hmtl>
<head>
<title>New Version!</title>
</head>
<xsl:apply-templates select="Node[generate-id() = generate-id(key('node-by-over', @Over)[1])]"/>
</hmtl>
</xsl:template>
<xsl:template match="Node">
over::: <h1><xsl:value-of select="@Over"/></h1>
<table id="{Over}">
<xsl:for-each select="key('node-by-over', @Over)">
<tr>
<td>balls:::<xsl:value-of select="@Ball"/></td>
<td>runs:::<xsl:value-of select="Runs"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:transform>
當前結果
<!DOCTYPE html
PUBLIC "XSLT-compat">
<hmtl>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New Version!</title>
</head>
over:::
<h1>1</h1>
<table id="">
<tr>
<td>balls:::1</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::2</td>
<td>runs:::1</td>
</tr>
<tr>
<td>balls:::3</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::4</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::5</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::6</td>
<td>runs:::2</td>
</tr>
</table>
over:::
<h1></h1>
<table id="">
<tr>
<td>balls:::</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::</td>
<td>runs:::0</td>
</tr>
</table>
over:::
<h1>2</h1>
<table id="">
<tr>
<td>balls:::1</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::2</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::3</td>
<td>runs:::2</td>
</tr>
<tr>
<td>balls:::4</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::5</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::6</td>
<td>runs:::1</td>
</tr>
</table>
over:::
<h1>3</h1>
<table id="">
<tr>
<td>balls:::1</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::2</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::3</td>
<td>runs:::1</td>
</tr>
<tr>
<td>balls:::4</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::5</td>
<td>runs:::1</td>
</tr>
</table>
</hmtl>
預計當前和預期產出之間輸出
<!DOCTYPE html
PUBLIC "XSLT-compat">
<hmtl>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New Version!</title>
</head>
over:::
<h1>1</h1>
<table id="">
<tr>
<td>balls:::1</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::2</td>
<td>runs:::1</td>
</tr>
<tr>
<td>balls:::3</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::4</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::5</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::6</td>
<td>runs:::2</td>
</tr>
</table>
over:::
<h1>2</h1>
<table id="">
<tr>
<td>balls:::1</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::2</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::3</td>
<td>runs:::2</td>
</tr>
<tr>
<td>balls:::4</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::5</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::6</td>
<td>runs:::1</td>
</tr>
</table>
over:::
<h1>3</h1>
<table id="">
<tr>
<td>balls:::1</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::2</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::3</td>
<td>runs:::1</td>
</tr>
<tr>
<td>balls:::4</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::5</td>
<td>runs:::1</td>
</tr>
</table>
</hmtl>
差異
over:::
<h1></h1>
<table id="">
<tr>
<td>balls:::</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::</td>
<td>runs:::0</td>
</tr>
</table>
我不想遍歷Node
在XML中具有
blank
@Over ..See例子
<Node Id="14" Over=""
我不想遍歷id =「14」,因爲它沒有超過值。但是現在的代碼是這麼做的,爲什麼它顯示在html部分之上?如何申請支票?
目前這樣的
over:::
<h1>3</h1>
<table id="">
<tr>
<td>balls:::1</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::2</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::3</td>
<td>runs:::1</td>
</tr>
<tr>
<td>balls:::4</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::5</td>
<td>runs:::1</td>
</tr>
</table>
最後一個節點顯示我們能證明這樣的
over:::
<h1>2.5</h1>
<table id="">
<tr>
<td>balls:::1</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::2</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::3</td>
<td>runs:::1</td>
</tr>
<tr>
<td>balls:::4</td>
<td>runs:::0</td>
</tr>
<tr>
<td>balls:::5</td>
<td>runs:::1</td>
</tr>
</table>
@過來。@球(最後一個節點)
這是正確的'的
user944513
我還想問一個問題..我可以在前面的結尾處顯示最後一個'Node'或'over',然後是球 – user944513
看我更新的問題 – user944513