0

是否可以使用创建 xsl 变量

<xsl:variable name="x"><xsl:value-of select="country" /></xsl:variable>

使用 javascript 变量?

变量“country”是在另一个 javascript 文件中创建的,该文件未嵌入在 xslt 中。我正在尝试使用 ajax 获取用户所在的国家/地区。

--------------Javascript文件--------------

$(document).ready(function()
{
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {       

    $.getJSON('http://ws.geonames.org/countryCode', {
    lat: position.coords.latitude,
    lng: position.coords.longitude,
    type: 'JSON'
    }, function(result) {
    country = result.countryCode;
});  
});
};

如果有更好的方法,请回复。提前致谢。

4

2 回答 2

1

如果要将值传递到 XSL,典型的机制是使用参数。在 XSL 的顶层,您将声明参数:

<xsl:stylesheet ....>

  .....

  <xsl:param name="country" />

  .....

然后你会从你的外部代码中传递那个值,表明这个值是为“国家”参数准备的。

我没有在 JavaScript 中使用 XSLT 参数的经验,但本教程似乎提供了有关如何使用 XSLT 参数的信息:

使用 JavaScript 传递 XSLT 参数

Mozilla 也提供了这些信息,但我不确定这两种方法的跨浏览器兼容性如何:

使用 Mozilla JavaScript 接口到 XSL

于 2013-01-15T15:16:33.563 回答
0

使用客户端 XSLT 的最常见方式是让 XSLT 生成 HTML 页面,包括其 Javascript。使用这种方法,XSLT 在 JS 开始执行之前停止执行,因此 JS 无法影响 XSLT。但当然也可以以编程方式运行 XSLT 转换,通过 Javascript API 调用它,在这种情况下,您可以通过使用该 API 设置参数将信息传递到转换中。

于 2013-01-15T17:12:03.343 回答