我想使用 XSLT 复制 mrss xml,但使用 XSLT 过滤属性中没有test
值的项目。label
这是我到目前为止所做的:
<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 的了解还不够。
有人可以提出更好/更简单的解决方案吗?