xml - 使用XPath从RSS feed中选择前5个元素

标签 xml xslt xpath rss

我正在尝试从以下RSS feed XML中选择前5个项目:

<rss xmlns:RTgame="http://www.rottentomatoes.com/xmlns/rtnews/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
   <channel>
     <item>
       <pubDate>2013-03-22 16:45:10</pubDate>
       <title>
          Weekly Ketchup: Will Tom Cruise Be The Man From U.N.C.L.E.?
       </title>
       <link>
         http://www.rottentomatoes.com/m/1927101/news/1927101/
       </link>
       <description>
          <![CDATA[
            This week's Ketchup includes movie development news for reboots of <em>Escape from New York</em>, <em>Hercules</em>, and <em>Pete's Dragon</em>, the next <em>X-Men</em> and <em>Captain America</em> movies, and new roles for Tom Cruise, Hugh Jackman, and Robert Redford.
          ]]>
       </description>
       <guid>
         http://www.rottentomatoes.com/m/1927101/news/1927101/
       </guid>
       <atom:link rel="thumbnail" type="image/*" href="http://content6.flixster.com/movie/11/14/23/11142332_tmb.jpg"/>
    </item>
    <item>...</item>
    <item>...</item>
    <item>...</item>
    <item>...</item>
    <item>...</item>
    <item>...</item>
    <item>...</item>
    etc.
  </channel>
</rss>


这是我的XSLT代码,其中包含Xpath表达式:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" omit-xml-declaration="yes" indent="yes" media-type="text/html"/>

<xsl:template match="rss/channel">
    <xsl:for-each select="item[position() < 6]">
        <xsl:variable name="link" select="link" />
        <a href="{$link}"><xsl:value-of select="title" /></a><br/>
        <xsl:value-of select="description" disable-output-escaping="yes" /><br/>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>


我得到一个空白页,没有显示结果。但是,如果将运算符从“ <”更改为“>”或“ =”,那么结果将显示在页面上。

由于某种原因,它不适用于“ <”运算符,我也不知道为什么。

最佳答案

只需替换:

<xsl:for-each select="item[position() < 6]">


与:

<xsl:for-each select="item[position() &lt; 6]">


说明:

XSLT转换是XML文档。根据格式良好的XML文档中的定义,必须转义任何不用于表示开始或结束标记的<字符。

关于xml - 使用XPath从RSS feed中选择前5个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15594662/

相关文章:

java - 使用java将xml文件数据插入数据库?

android - 如何创建一个按钮来显示直方图? (提供直方图示例代码)

java - Java 中的撒克逊语 : XSLT Code Reuse

xml - 我的 XSLT 中有什么错误?

xml - xsl : transform namespaced tags

xml - XPath 计数() 函数

xml - 使用 XSLT 扩展 HTML5 视频元素

html - 如何使用 nginx 在 XSL 转换样式表上获取 "text/plain"输出?

html - 获取文本,后跟某些文本

java - 如何使用 Selenium 和 Java 提取文本?