Xml 随机化节点顺序xslt
我有一个包含如下节点的XML文件:Xml 随机化节点顺序xslt,xml,xslt,random,Xml,Xslt,Random,我有一个包含如下节点的XML文件: <values> <item>item 1</item> <item>item 2</item> <item>item 3</item> <item>item 4</item> <item>item 5</item> </values> 项目1 项目2 项目3 项目
<values>
<item>item 1</item>
<item>item 2</item>
<item>item 3</item>
<item>item 4</item>
<item>item 5</item>
</values>
项目1
项目2
项目3
项目4
项目5
我希望使用xslt以随机顺序获取列表:
<values>
<item>item 3</item>
<item>item 5</item>
<item>item 1</item>
<item>item 4</item>
<item>item 2</item>
</values>
项目3
项目5
项目1
项目4
项目2
我不能使用像这样的外部资源
“xmlns:java=“java.lang.Math”
和
“xmlns:math=”http://exslt.org/math"
因为限制
也许这些链接会有所帮助:
以下样式表将以随机顺序将项目写入输出树。样式表要求在运行时提供一个外部“初始种子”编号作为参数 注意:由于项目只是重新排序而没有进行处理,因此不需要对其进行排序,这里也不需要EXSLT node-set()函数
使用默认初始种子(123)应用于输入,输出为:
<?xml version="1.0" encoding="utf-8"?>
<values>
<item>item 2</item>
<item>item 3</item>
<item>item 1</item>
<item>item 4</item>
<item>item 5</item>
</values>
<?xml version="1.0" encoding="utf-8"?>
<values>
<item>item 4</item>
<item>item 1</item>
<item>item 5</item>
<item>item 2</item>
<item>item 3</item>
</values>
项目2
项目3
项目1
项目4
项目5
使用1234种子执行时,输出为:
<?xml version="1.0" encoding="utf-8"?>
<values>
<item>item 2</item>
<item>item 3</item>
<item>item 1</item>
<item>item 4</item>
<item>item 5</item>
</values>
<?xml version="1.0" encoding="utf-8"?>
<values>
<item>item 4</item>
<item>item 1</item>
<item>item 5</item>
<item>item 2</item>
<item>item 3</item>
</values>
项目4
项目1
项目5
项目2
项目3
以下样式表将以随机顺序将项目写入输出树。样式表要求在运行时提供一个外部“初始种子”编号作为参数
注意:由于项目只是重新排序而没有进行处理,因此不需要对其进行排序,这里也不需要EXSLT node-set()函数
使用默认初始种子(123)应用于输入,输出为:
<?xml version="1.0" encoding="utf-8"?>
<values>
<item>item 2</item>
<item>item 3</item>
<item>item 1</item>
<item>item 4</item>
<item>item 5</item>
</values>
<?xml version="1.0" encoding="utf-8"?>
<values>
<item>item 4</item>
<item>item 1</item>
<item>item 5</item>
<item>item 2</item>
<item>item 3</item>
</values>
项目2
项目3
项目1
项目4
项目5
使用1234种子执行时,输出为:
<?xml version="1.0" encoding="utf-8"?>
<values>
<item>item 2</item>
<item>item 3</item>
<item>item 1</item>
<item>item 4</item>
<item>item 5</item>
</values>
<?xml version="1.0" encoding="utf-8"?>
<values>
<item>item 4</item>
<item>item 1</item>
<item>item 5</item>
<item>item 2</item>
<item>item 3</item>
</values>
项目4
项目1
项目5
项目2
项目3
如果没有一些外部输入来提供“种子”(如当前日期或时间),任何伪随机生成器在每次启动时都会产生相同的数字序列。如果这满足了这里的随机化目的,也许您可以简单地使用预先生成的随机数列表。我可以创建随机数并将其输入xslt。您的意思是作为参数吗?那太好了。现在,你能使用EXSLT node-set()函数吗?是的,我可以输入一个随机数作为参数,我很想知道它是如何实现的。。。谢谢为什么不回答我关于node-set()函数的另一个问题?如果没有一些外部输入来提供“种子”(如当前日期或时间),任何伪随机生成器每次启动时都会生成相同的数字序列。如果这满足了这里的随机化目的,也许您可以简单地使用预先生成的随机数列表。我可以创建随机数并将其输入xslt。您的意思是作为参数吗?那太好了。现在,你能使用EXSLT node-set()函数吗?是的,我可以输入一个随机数作为参数,我很想知道它是如何实现的。。。谢谢为什么不回答我的另一个问题,关于node-set()函数?