我一直在閱讀有關w3schools.com XPath軸和我一直在試圖尋找幫助,但我有一個很難搞清楚什麼實際搜索。Xpath的需要,以配合三種不同的方案
我有一個用於各種XML文件轉換成PDF打印一個XSL樣式表。我堅持的部分是,當我需要更改某些格式時,我已經確定了至少3種不同的場景。我已經找到一種方法來更改格式有兩種的情況,但第三個是一種另外兩個雜種,我不斷收到兩套格式來顯示時,我只想要一個。
請讓我知道如果任何附加信息是有用的,謝謝!
方案1:
<TASK>
<REVST>Some revised text
</TASK>
方案2:
<LIST>
<PARA>
<REVST />Some Text <REVEND />
</PARA>
</LIST>
方案3:
<TASK>
<PARA>
<REVST />Some other revised text <REVEND />
</PARA>
</TASK>
什麼似乎與方案1的工作中的一部分具有這種<xsl:if test="parent::*TASK/REVST">
樣式表做一個for-each並遍歷每個「ITEM」。 什麼似乎與方案2的工作是有這個測試<xsl:if test="descendant::REVST">
的PARA模板中。
但對於方案3,我結束了兩個顯示,當它應該只從PARA模板的格式。
有什麼建議嗎?甚至是搜索條件的建議?任何幫助將不勝感激:)
我知道我有一個很好的學習,我欣賞已提供的幫助,但我仍然不太明白如何得到這個不顯示修訂格式(當只有一些文本被指示修改時,整個文檔的頁面右側有一個欄)?
<LIST>
<PARA>
<REVST/>
THIS IS SOME TEXT THAT SHOULD BE MARKED BY A REVISION BAR.
<REVEND/>
</PARA>
</LIST>
而像這樣的情況下,我需要顯示實質上整個文檔的修訂版吧。
<TASK>
<ELE1/>
<REVST/>
<ELE2/>
<TITLE>The Title</TITLE>
<ELE3>
<ELE4>
<TITLE>General</TITLE>
<LIST>
<LITEM>
<PARA>This is some paragraph text.</PARA>
</LITEM>
</LIST>
</ELE4>
</ELE3>
</TASK>
我嘗試過所提供的內容,但似乎並不適用,除非我通過文本或PARA部分添加*。我可能在那裏錯過了一些東西。
<xsl:template match="TASK/*text()[preceding-sibling::*[1][self::REVST] and following-sibling::*[1][self::REVEND]]">
<fo:block color="red" border-right="solid black 2pt" margin-right="16pt">
<xsl:apply-templates />
</fo:block>
</xsl:template>
<xsl:template match="LIST1/*PARA/text()[preceding-sibling::*[1][self::REVST] and following-sibling::*[1][self::REVEND]]">
<fo:block color="green" border-right="solid black 2pt" margin-right="16pt">
<xsl:apply-templates />
</fo:block>
</xsl:template>
還有其他的建議嗎?我仍然停留:(
感謝您對喜歡模板的內嵌xsl:for-each的建議。我一直在學習中,儘可能多地清理一些東西。使用xsl:for-each的設置已經存在,所以我認爲它應該是這樣的。我有很長的路要走:) – froglander 2012-08-07 12:32:03