<xsl:value-of select="jobpageno"/>
上面的代码没有错误,可以成功运行并显示页面。
但是,在删除&amp; PageNo = {@ jobpageno}之后,代码出错,然后成功显示。
<a href="http://www.hello.com/description.aspx?ID={@id}&PageNo={@jobpageno}" target="_top">
此链接包含此参数的错误
解析EntityName时发生错误。第58行,第103位
它应该显示hello.com/description.aspx?ID=753561&PageNo=1
<a href="http://www.hello.com/description.aspx?ID={@id}&PageNo={jobpageno}" target="_top">
也有错误
pageno只是元素之一
<jobresults jobcount='1'>
<header1><![CDATA[ IT Jobs]]></header1>
<header2><![CDATA[1 Results for ' IT' in Asia]]></header2>
<entity id='753561' index='1'>
<position><![CDATA[Ecommerce Project Manager]]></position>
<jobCountry><![CDATA[Singapore]]></jobCountry>
<posteddate><![CDATA[January 2013]]></posteddate>
<JobDefaultRole><![CDATA[Contract]]></JobDefaultRole>
<jobTypeDesc><![CDATA[Jobs In IT]]></jobTypeDesc>
<jobDetails><![CDATA[ Ecommerce Project Manager Client Description Our ...]]></jobDetails>
<jobpageno><![CDATA[1]]></jobpageno>
</entity>
</jobresults>
<xsl:for-each select="jobresults/entity">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<tr class="odd">
<td>
<a href="http://www.hello.com/job-description.aspx?jobID={@id}&jobPageNo={@jobpageno}" target="_top">
<xsl:value-of select="position"/>
<xsl:value-of select="jobpageno"/>
</a>
</td>
答案 0 :(得分:2)
XSLT文件必须是格式良好的XML,因此您需要转义&
:
<a href="http://www.hello.com/description.aspx?ID={@id}&PageNo={jobpageno}" target="_top">
您看到的实际错误消息是因为解析器将&PageNo
视为实体引用的开头,但后来无法找到终止分号。
答案 1 :(得分:1)
在您的问题中可能只是一个拼写错误,但在您的第一个XSLT示例中,您使用 pageno ,这意味着它是一个元素,但在您的第二个XSLT示例中,您执行 @pageno 表示正在寻找属性。
也许你的意思是这样做:
<a href="http://www.hello.com/description.aspx?ID={@id}&PageNo={pageno}" target="_top">
请注意,XSLT示例的语法没有任何问题。如果你引用一个不存在的属性,它将只是作为一个空白输出,所有将发生的是href属性不会像你期望的那样完整。
编辑:从查看修正后的问题来看,既没有属性也没有名为 pageno 的元素。也许你的意思是使用 jobpageno ?
<a href="http://www.hello.com/description.aspx?ID={@id}&PageNo={jobpageno}" target="_top">