基于Javascript中的数字数据对XML进行排序
有人能告诉我如何对包含数字数据以及存储在单独标记中的字符串数据的XML文件进行排序吗?例如,我有一个费用(数字)和网络(字符串)元素。现在我想根据Javascript中的费用对XML文件进行排序 有简单的例子吗基于Javascript中的数字数据对XML进行排序,javascript,xml,Javascript,Xml,有人能告诉我如何对包含数字数据以及存储在单独标记中的字符串数据的XML文件进行排序吗?例如,我有一个费用(数字)和网络(字符串)元素。现在我想根据Javascript中的费用对XML文件进行排序 有简单的例子吗 <Results> <network>Wateen</network> <speed>2048</speed> <type>Fixed</type>
<Results>
<network>Wateen</network>
<speed>2048</speed>
<type>Fixed</type>
<install_charges>500</install_charges>
<charges>20</charges>
</Results>
<Results>
<network>PTCL</network>
<speed>4096</speed>
<type>Fixed</type>
<install_charges>0</install_charges>
<charges>2000</charges>
</Results>
<Results>
<network>PTCL</network>
<speed>4096</speed>
<type>Fixed</type>
<install_charges>0</install_charges>
<charges>200</charges>
</Results>
<Results>
<network>PTCL</network>
<speed>4096</speed>
<type>Fixed</type>
<install_charges>0</install_charges>
<charges>3000</charges>
</Results>
沃特恩
2048
固定的
500
20
PTCL
4096
固定的
0
2000
PTCL
4096
固定的
0
200
PTCL
4096
固定的
0
3000
如何根据
费用对上述XML进行排序?如果是非XSL方法也很好,因为XSL会带来很多麻烦。如果您不喜欢使用XSL,可以创建一个包含Results元素的数组,并使用数组的本机排序方法:
<Results>
<network>Wateen</network>
<speed>2048</speed>
<type>Fixed</type>
<install_charges>500</install_charges>
<charges>20</charges>
</Results>
<Results>
<network>PTCL</network>
<speed>4096</speed>
<type>Fixed</type>
<install_charges>0</install_charges>
<charges>2000</charges>
</Results>
<Results>
<network>PTCL</network>
<speed>4096</speed>
<type>Fixed</type>
<install_charges>0</install_charges>
<charges>200</charges>
</Results>
<Results>
<network>PTCL</network>
<speed>4096</speed>
<type>Fixed</type>
<install_charges>0</install_charges>
<charges>3000</charges>
</Results>
<script>
var nodeArray=[];
var nodeList=document.getElementsByTagName('Results')
//fill array
for(var i=0;i<nodeList.length;++i)
{
nodeArray.push(nodeList[i]);
}
//sort array
nodeArray.sort(function(a,b)
{
return (
Number(a.getElementsByTagName('charges')[0].firstChild.data)
-
Number(b.getElementsByTagName('charges')[0].firstChild.data)
);
});
//reorder nodes
for(var i=nodeArray.length-1;i>=0;i--)
{
nodeArray[i]
.parentNode
.insertBefore(nodeArray[i],
nodeArray[i].parentNode.getElementsByTagName('Results')[0]);
}
</script>
沃特恩
2048
固定的
500
20
PTCL
4096
固定的
0
2000
PTCL
4096
固定的
0
200
PTCL
4096
固定的
0
3000
变量noderray=[];
var nodeList=document.getElementsByTagName('Results')
//填充数组
对于(变量i=0;i=0;i--)
{
诺德雷[i]
.parentNode
.insertBefore(nodarray[i],
nodeArray[i].parentNode.getElementsByTagName('Results')[0]);
}
您可以发布一个示例xml字符串吗?