Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 随机化节点顺序xslt_Xml_Xslt_Random - Fatal编程技术网

Xml 随机化节点顺序xslt

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 项目

我有一个包含如下节点的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
项目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()函数?