Javascript 显示xml列表中的随机项

Javascript 显示xml列表中的随机项,javascript,xml,random,Javascript,Xml,Random,我已经到处找了,但我找不到一个干净的解决方案(我能理解) 如何从xml列表中随机抽取条目 我的出发点如下(这是最新的条目): var xmlDoc=null; if(window.ActiveXObject) {//IE的代码 xmlDoc=新的ActiveXObject(“Microsoft.XMLDOM”); } 如果(xmlDoc!=null) { xmlDoc.async=false;xmlDoc.load(“/folder/file.xml”); var x=xmlDoc.getE

我已经到处找了,但我找不到一个干净的解决方案(我能理解)

如何从xml列表中随机抽取条目

我的出发点如下(这是最新的条目):


var xmlDoc=null;
if(window.ActiveXObject)
{//IE的代码
xmlDoc=新的ActiveXObject(“Microsoft.XMLDOM”);
}
如果(xmlDoc!=null)
{ 
xmlDoc.async=false;xmlDoc.load(“/folder/file.xml”);
var x=xmlDoc.getElementsByTagName(“z:行”);

for(i=0;i稍微更改代码…以切换“for(i=0;iMath)。random()将返回一个介于0和1之间的数字,getElementsByTagName将返回一个具有长度的节点列表。因此

Math.floor(Math.random() * x.length)
为节点列表提供一个随机索引。然后可以使用此索引调用item(),将该节点从列表中删除:

var nodeList = xmlDoc.getElementsByTagName("whatever");
var node = nodeList.item(Math.floor(Math.random() * nodeList.length));

全部结束?真的吗?难道你不需要一个迭代器和一个随机数生成器吗?全部结束,是的。因为随机数生成器只有在你a)知道你有多少项,b)知道的情况下才有帮助如果您将它们列在内部数组而不是外部文件中。如果您能告诉我如何应用math.random位,我将永远感激!我希望
getElementsbyTagName
返回一个
NodeList
,它具有属性
length
和一个方法
item()
这需要一个数字。好吧,这听起来像是一个进步的线索,我很感激。不幸的是,我不知道它如何转化为代码来使用。我能让它计算出有多少节点,然后在0和它之间选择一个随机数吗?如果是,请告诉我怎么做,因为我在这里不清楚。干杯!嗯,修补补,我已经做到了替换为(i=0;i
Math.floor(Math.random() * x.length)
var nodeList = xmlDoc.getElementsByTagName("whatever");
var node = nodeList.item(Math.floor(Math.random() * nodeList.length));