我正在尝试从以下RSS提要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>
我得到一个没有显示结果的空白页面。但是,如果我从“&lt;”更改运算符到“&gt;”或“=”,然后我得到页面上显示的结果。
由于某种原因,它不适用于“&lt;”操作员,我不明白为什么。
答案 0 :(得分:4)
只需替换:
<xsl:for-each select="item[position() < 6]">
<强>与强>:
<xsl:for-each select="item[position() < 6]">
<强>解释强>:
XSLT转换是一种XML文档。根据格式良好的XML文档中的定义,任何不用于表示开始或结束标记的<
字符都必须进行转义。