href链接中的xslt参数错误

时间:2013-03-18 07:26:01

标签: asp.net xslt

<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>

2 个答案:

答案 0 :(得分:2)

XSLT文件必须是格式良好的XML,因此您需要转义&

<a href="http://www.hello.com/description.aspx?ID={@id}&amp;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">