2014-09-29 125 views
-2

在這幅畫給定電流編碼,我想忽略輸出<bookmeta>內容是如何可能的 image如何在xslt中選擇根節點時忽略特定的子節點?

+0

您應該真的編輯您的問題,向您展示XML和您的XSLT,而不是鏈接到可能在未來某個時候會消失的圖像。要將XML/XSLT樣本添加到您的問題中,只需複製文本,選擇它,然後單擊「{}」按鈕對其進行格式化以使其可讀。謝謝。 – 2014-09-29 07:19:47

回答

2

有幾種方法可以做到這一點。在你的情況下,我要麼改變模板匹配<book>而不是根(記住 - 內置模板會自動爲你處理根)並使用except運算符,或者我會編寫一個模板來抑制bookMeta元素。

方法1

<xsl:template match="book"> 
    <!-- you probably want to add some sort of output element here! --> 
    <xsl:apply-templates select="node() except bookMeta"/> 
</xsl:template> 

方法2

<xsl:template match="/"> 
    <xsl:apply-templates/> 
</xsl:template> 

<xsl:template match="bookMeta"/> 

我會建議使用第二種方法正常 - 您沒有做出更改原始模板,如果你想稍後處理bookMeta您已隔離您的更改。

+0

我知道這個第二種方法,你能解釋第一種方法,它在這裏不起作用 – 2014-09-29 08:52:07

+0

請記住,我寫這意味着你將替換匹配文檔節點的模板和匹配根元素的模板。另外,請記住,沒有'select'屬性的'xsl:apply-templates'與選擇'node()'是一樣的。 'except'運算符允許您從序列中排除節點。這裏的節點序列應該是除了與「except」的RHS相匹配的所有子節點。 「它在這裏沒有工作」是什麼意思? – 2014-09-29 10:20:22

+0

謝謝尼克吉布森終於得到了解決方案 2014-09-30 04:15:56