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 重定向到该页面的主要内容,如果未能解决你的问题,请参考以下文章