【发布时间】:2011-09-12 12:59:42
【问题描述】:
需要一点帮助。我有一个带有城市列表和图像网址的 XML。 XML 上可以有任意数量的城市,但是我想在 XSLT 页面上有一个部分,如果我只显示一些图像(假设 XML 中的 x 个城市中有 4 个)。我希望能够通过随机选择具有附加属性 url 的任何城市来动态地执行此操作(因此每次加载页面时都会显示 4 个不同的城市图像)。这是我的 XML 示例。
<Cities>
<City Name="London" url="LinkToImage" />
<City Name="Aberdeen" url="LinkToImage" />
<City Name="Birmingham" url="LinkToImage" />
<City Name="Bristol" url="LinkToImage" />
<City Name="Cardiff" url="LinkToImage" />
<City Name="Edinburgh" url="LinkToImage" />
<City Name="Glasgow" url="LinkToImage" />
<City Name="Liverpool" url="LinkToImage" />
<City Name="Manchester" url="LinkToImage" />
<City Name="Newcastle" url="LinkToImage" />
<City Name="Paris" url="LinkToImage" />
<City Name="Marseille" url="LinkToImage" />
...
如果我添加另一个属性,例如 number="x",会有帮助吗?如果可能的话 id 链接来避免这种情况。任何帮助将非常感激。
我不确定我是否可以在 XSLT 中做到这一点,或者我是否必须编写一个 JavaScript 函数......无论哪种方式,我都不确定如何解决它。我不知道一旦我在城市中循环如何让它随机。
【问题讨论】:
-
XSLT 中没有任何随机函数。当然你可以编写(或使用现有的)一个,但你最好从结果中选择一个随机元素,或者将一个随机数作为参数传递给样式表以使用。
-
@Flynn1179 - 感谢您的想法
-
@Flynn1179:请尽量准确一点:没有任何标准 XSLT 或XPath 函数可用于生成随机数。 FXSL 差不多 10 年前就提供了这样的功能/模板。
-
@Dimitre:这就是为什么我说 in XSLT,而不是 for XSLT。鉴于我还提到了使用现有函数的可能性,应该很清楚我指的是标准 XSLT。
-
@Flynn1179:不清楚,请记住,大多数 SO 读者都不是(而且确实不是)以英语为母语的人。跨度>
标签: javascript xml xslt