我使用以下XSLT:刪除自我封閉不必要的標記XSLT
https://gist.github.com/4402884
如果下面的模板做了改造,使HTML輸出如下:
<li>
<div class="content-left" style="float:left; width:300px"> content </div>
<div class="content-left" style="float:left; width:300px">content </div>
</li>
<li>
<div class="content-left" style="float:left; width:300px"> content </div>
<div class="content-left" style="float:left; width:300px">content </div>
</li>
.
.
.
等。 實際的XSLT正在做這項工作來獲得這樣的兩列布局:
A-----B
C-----D
E-----F
其中每行是一個「禮」項目
<xsl:choose>
<xsl:when test="$CurPos mod 2 =1">
<xsl:text disable-output-escaping="yes"><li style="width:610px; height:290px; "></xsl:text>
<div class="content-left" style="width:290px; height:290px;float:left;">
<xsl:value-of select="@PublishingRollupImage" disable-output-escaping="yes" />
<span class="NewsHeading"><h4><xsl:value-of select="$CurPos"/><xsl:value-of select="@Title"/></h4></span>
<span class="Desc" style="display:block; width:280px;"><xsl:value-of select="substring(@Comments,0,200)"/>
<xsl:if test="string-length(@Comments) > 200">…</xsl:if><a href="{$SafeLinkUrl}" class="ReadMore"> Read More</a></span>
</div>
<div class="content-right" style="float:right; width:290px; height:290px;">
<xsl:if test="$CurPos != $LastRow ">
<xsl:value-of select="following-sibling::*[1]/@PublishingRollupImage" disable-output-escaping="yes" />
<span class="NewsHeading"><h4><xsl:value-of select="$LastRow"/><xsl:value-of select="following-sibling::*[1]/@Title"/></h4></span>
<span class="Desc" style="display:block; width:280px;"><xsl:value-of select="substring(following-sibling::*[1]/@Comments,0,200)"/>
<xsl:if test="string-length(following-sibling::*[1]/@Comments) > 200">…</xsl:if>
<a href="{$SibSafeLinkUrl}" class="ReadMore"> Read More</a></span>
</xsl:if>
</div>
</xsl:when>
<xsl:otherwise>
<xsl:text disable-output-escaping="yes"></li></xsl:text>
</xsl:otherwise>
</xsl:choose>
但不幸的是Inernet Explorer中產生不必要的自我封閉標籤像這樣(只是IE),FF和鉻使其正確...
<li>
<div class="content-left" style="float:left; width:300px"> content </div>
<div class="content-left" style="float:left; width:300px">content </div>
</li></li/></li/>
<li>
<div class="content-left" style="float:left; width:300px"> content </div>
<div class="content-left" style="float:left; width:300px">content </div>
</li></li/></li/>
我該如何擺脫那些不必要的自閉怪異的'li'標籤?因爲我需要一個jquery滑塊插件的精確html結構來工作,由於不需要的標籤,滑塊行爲不當。
這是IE: IE http://www.imagesup.net/?di=9135673644516
這是在FireFox: FF http://www.imagesup.net/?di=11135673652612
如果你避免使用能源部,很可能你不會得到無法解釋的輸出。 –
你能給我們一個完整的樣本輸入嗎? – PCM
@DimitreNovatchev發現無法解釋的輸出似乎只出現在IE 8中。IE 9,Chrome,FireFox確實不錯......有沒有辦法在XSLT中定位特定版本的瀏覽器,就像我們在CSS中一樣? – Athapali