1
我在觸發xsl操作時僅在不同的值上有困難。下面是我的XML文件的摘錄:僅在不同的XML節點上執行某些操作
<?xml version="1.0" encoding="UTF-8" ?>
<Doc Data="February 2010">
<Title>Title 1</Title>
<Subject>Subject 1</Subject>
</Doc>
<Doc Data="January 2010">
<Title>Title 2</Title>
<Subject>Subject 2</Subject>
</Doc>
<Doc Data="January 2010">
<Title>Title 3</Title>
<Subject>Subject 3</Subject>
</Doc>
,這是我的XSL文件:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:objUtility="urn:utility"
version="1.0">
<xsl:output method="html" indent="no" encoding="ISO-8859-1"/>
<xsl:template match="Doc">
<xsl:if test="not(@Data = preceding-sibling::Doc/@Data)">
<xsl:value-of select="@Data" />
</xsl:if>
</xsl:template>
<xsl:apply-templates />
的問題是,這種代碼的前同輩::文件/ @數據總是元素只包含第一個元素,所以基本上我只能得到一個明顯的價值,而不是一月份。我錯在哪裏?如果你要問我必須使用XSL 1.0
您的代碼示例適用於我,打印「2010年2月」和「2010年1月」。 – Tomalak 2010-02-04 12:40:58
真奇怪,我得到的每一個元素,而不是(二月測試沒有,並且一月份測試對二月)... – 2010-02-04 13:33:47
我沒有看到任何問題,你的樣式表片段,但如果你有東西不按預期工作,那麼它是更好提供最少但完整的樣本,讓其他人重現問題。你真的有一個片段發佈爲你的輸入?整個樣式表如何顯示? – 2010-02-04 13:49:49