在javascript中从xml文件中选择数据

时间:2011-05-20 22:22:55

标签: javascript xml

我想从xml文件中选择两个项目,其中itemno和数量较少,价格较低。任何人都可以帮助我在javascript中执行此操作。

items.xml:

<?xml version="1.0"?>
<items>
    <item>
        <itemno>1</itemno>
        <unitprice>99</unitprice>
        <Quantity>10</Quantity>
    </item>
    <item>
        <itemno>2</itemno>
        <unitprice>80</unitprice>
        <Quantity>10</Quantity>
    </item>
    <item>
        <itemno>3</itemno>
        <unitprice>120</unitprice>
        <Quantity>10</Quantity>
    </item>
</items>

的javascript:

var xmlDoc=new ActiveXObject("MSXML.DOMDocument");
xmlDoc.async="false";
xmlDoc.load("items.xml");
var items=xmlDoc.documentElement;
var item = itemss.childNodes(0);

1 个答案:

答案 0 :(得分:1)

所有基本DOM方法也适用于XML:

http://www.quirksmode.org/dom/w3c_core.html
https://developer.mozilla.org/en/DOM/document
https://developer.mozilla.org/en/DOM/element

您可以使用

找到所有项目
items = xmlDoc.getElementsByTagName('item');

对于每个项目,其中一个子节点是成本节点:

priceNode = item.childNodes[1];

(或者您可以查看子节点,查找nodeName等于“UNITPRICE”的子节点。)

寻找节点的内容比较棘手,因为IE和FF支持不同的方法:

priceStr =  priceStr.textContent || priceNode.innerText;

最后,将字符串转换为数字:

price = parseInt(priceStr, 10);

顺便说一下,使用ActiveX构建XML文档的方式是IE特定的。你一定要考虑使用某种Javascript库(比如Jquery或Dojo)来平滑这个和其他东西。