使用XSLT中的媒体命名空间 - 结果只支持1.0个功能?

时间:2013-03-06 19:22:03

标签: xslt rss media

我有一个简单的XML文件,我正在尝试创建一个XSLT文件来将XML处理成HTML。

XML

<?xml version="1.0" ?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
<title>PDF</title>
<ttl>10</ttl>
<link>https://teele.box.com/shared/3m9en769bdh36d4y2hjy/rss.xml</link>
<description>PDF file updates</description>
<lastBuildDate>Tue, 05 Mar 2013 13:59:22 -0800</lastBuildDate>
<copyright>Copyright 2009 box.net</copyright>
<webMaster>no-reply@box.com (No reply)</webMaster>
<item>
  <title>Kat Martin - Sinclair Sisters Trilogy 02 - Desert Heat.pdf</title>
  <description></description>
  <pubDate>Sun, 03 Feb 2013 17:19:36 -0800</pubDate>
  <link>https://teele.box.com/index.php?rm=box_download_shared_file&amp;shared_name=3m9en769bdh36d4y2hjy&amp;file_id=f_5920615203&amp;rss=1</link>
  <media:content url="https://teele.box.com/index.php?rm=box_download_shared_file&amp;shared_name=3m9en769bdh36d4y2hjy&amp;file_id=f_5920615203&amp;rss=1" />
  <media:text></media:text>
  <media:title>Kat Martin - Sinclair Sisters Trilogy 02 - Desert Heat.pdf</media:title>
  <media:thumbnail url="https://ak3.boxcdn.net/resources/rcxnqksqis/thumbs/43x51/application/pdf.gif"  height="48" width="48"/>
</item>

和我的XSLT

<?xml version='1.0'?>
<xsl:stylesheet version="2.0"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
             xmlns:media="http://search.yahoo.com/mrss/">

 <xsl:output method="html" />

<xsl:template name="Content">
  <xsl:for-each select="rss/channel/item">
    <xsl:value-of select="media:thumbnail/@url"/>
  </xsl:for-each>
</xsl:template>

<xsl:template match="/">
  <xsl:call-template name="Content" />
</xsl:template>
</xsl:stylesheet>

当我处理这个时,我从http://www.online-toolz.com/tools/xslt-transformation.php得到以下错误,我正在测试XSLT

错误:XSLTProcessor :: importStylesheet()[xsltprocessor.importstylesheet]:xsl:version:仅支持1.0个功能

它与media:标签有关,但我不知道它的含义,我定义了命名空间。

2 个答案:

答案 0 :(得分:1)

只需将version =“2.0”设置为version =“1.0”,它就不会抛出错误。

此外,您可以获得有关XSLT处理器的一些信息:

xsl:version=<xsl:value-of select="system-property('xsl:version')" />
xsl:vendor=<xsl:value-of select="system-property('xsl:vendor')" />
xsl:vendor-url=<xsl:value-of select="system-property('xsl:vendor-url')" />
xsl:product-name=<xsl:value-of select="system-property('xsl:product-name')" />
xsl:product-version=<xsl:value-of select="system-property('xsl:product-version')" />
xsl:is-schema-aware=<xsl:value-of select="system-property('xsl:is-schema-aware')" />
xsl:supports-serialization=<xsl:value-of select="system-property('xsl:supports-serialization')" />
xsl:supports-backwards-compatibility=<xsl:value-of select="system-property('xsl:supports-backwards-compatibility')" />
msxsl:version=<xsl:value-of select="system-property('msxsl:version')" />

答案 1 :(得分:0)

看起来网站上的处理器对v2功能不满意。

http://www.online-toolz.com/tools/xslt-transformation.php

它在SharePoint 2010中运行