1
我想使用XSLT複製mrss xml,但使用XSLT篩選label
屬性中沒有test
值的項目。根據子節點屬性值篩選節點的最簡單XSLT
這裏是我做過什麼至今:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:media="http://search.yahoo.com/mrss/">
<xsl:template match="/">
<rss xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel><xsl:apply-templates/></channel>
</rss>
</xsl:template>
<xsl:template match="channel/item[contains(media:category/@label,'test')] | channel/*[not(self::item)]">
<xsl:copy-of select="."/>
</xsl:template>
<xsl:template match="channel/item[not(contains(media:category/@label,'test'))]">
</xsl:template>
</xsl:stylesheet>
三樣東西,我不喜歡它:
- 空模板過濾無與倫比的項目,
rss
,並channel
元素已經存在於源XML中,但我仍然需要將它放入XSL文件- 我認爲有些事情可以做到單個XPath表達式,但我不知道XPath和XSLT足夠多。
有人可以建議更好/更簡單的解決方案嗎?
謝謝,它的工作原理,唯一的問題是源中的元素有縮進,所以有空行,取代每個項目刪除。我如何解決它? – 2013-03-17 12:08:02
增加一個'xsl:strip-space'應該可以解決這個問題。上面修改。 – JLRishe 2013-03-17 12:52:03
如何爲兩個單詞添加一個OR過濾器?只有「sport」或「nature」類別的商品? – aborruso 2017-06-18 11:33:10