xslt 生成的表中的 URL 重定向到该页面

Posted

技术标签:

【中文标题】xslt 生成的表中的 URL 重定向到该页面【英文标题】:URL in xslt-generated table redirecting to that page 【发布时间】:2012-11-27 12:27:45 【问题描述】:

我正在通过 XSLT 将 XML 文件中的数据转换为 html 页面上的表格。 (XML 和 XSLT 文件是使用与 w3schools XSLT on the Client 页面上相同的 javascript 代码调用的。)我的 XML 字段之一包含一个 URL。我的转换为该字段创建了一个 href 属性,但不是从 XML 文件中发布 URL,而是将其替换为该表所在的 HTML 页面的 URL。

我的 XML 如下所示:

<database>
<Table>
<Title>Title</Title>
<URL value="www.link.com">Watch this video</URL>
</table>        

我的 XSLT 如下所示:

<table>
<tr>
<th>Title</th>
<th>URL</th>
</tr>
<xsl:for-each select="database/table">
<tr>
<td><xsl:value-of select="Title"/></td>
<td>
<a>
<xsl:attribute name="href">
<xsl:value-of select="URL/@VALUE"/>
</xsl:attribute>
<xsl:value-of select="URL"/>
</a>
</td>
</tr>
</xsl:for-each>
</table>

但在 HTML 页面上,“观看此视频”链接不是“www.link.com”而是“www.HTMLpage.com”。如果我将 XSL 转换添加到 XML 文档并在浏览器中打开它,也会发生同样的事情 - 链接仍然指向该页面的地址,而不是我想要它们的外部地址。

【问题讨论】:

【参考方案1】:

XPath 区分大小写

替换

<xsl:value-of select="URL/@VALUE"/>

<xsl:value-of select="URL/@value"/>

现在,当应用于提供的 XML 文档(也需要类似的更正和结束标记)时,更正转换的结果会产生想要的结果

<table>
   <tr>
      <th>Title</th>
      <th>URL</th>
   </tr>
   <tr>
      <td>Title</td>
      <td>
         <a href="www.link.com">Watch this video</a>
      </td>
   </tr>
</table>

【讨论】:

谢谢!差不多就是这样。现在它以这种格式将正确的 URL 附加到旧的(坏的)URL 的末尾。 www.HTMLpage/www.link.com. 查看生成的 HTML 代码。我猜没有任何附加内容。 URL 语法可能错误并被解释为相对 URL 而不是绝对 URL(添加 http://)。

以上是关于xslt 生成的表中的 URL 重定向到该页面的主要内容,如果未能解决你的问题,请参考以下文章

我需要撤消重定向插件完成的重定向 URL

servlet如何重定向

Struts2页面重定向

URL 重定向未从正确的相对源加载资源

根据 URL 参数重定向,如果 URL 参数在表行中可用 - PHP MySQL

如何从 ASP.Net 发布然后重定向到外部 URL?