JS读取xml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>js.loadXmlDom.xmlString.html</title>
    <meta name="generator" content="editplus" />
    <meta name="author" content="Gao YiXiang" />
    <meta name="email" content="yixianggao@126.com" />
    <meta name="keywords" content="javascript dhtml dom" />
    <meta name="description" content="I love web development." />
</head>
    <script type="text/javascript">
    <!--
var xmlString = "<Order>     <Account>9900234</Account>     <Item id='1'>         <SKU>1234</SKU>         <PricePer>5.95</PricePer>         <Quantity>100</Quantity>         <Subtotal>595.00</Subtotal>         <Description>Super Widget Clamp</Description>     </Item>     <Item id='2'>         <SKU>6234</SKU>         <PricePer>22.00</PricePer>         <Quantity>10</Quantity>         <Subtotal>220.00</Subtotal>         <Description>Mighty Foobar Flange</Description>     </Item>     <Item id='3'>         <SKU>9982</SKU>         <PricePer>2.50</PricePer>         <Quantity>1000</Quantity>         <Subtotal>2500.00</Subtotal>         <Description>Deluxe Doohickie</Description>     </Item>     <Item id='4'>         <SKU>3256</SKU>         <PricePer>389.00</PricePer>         <Quantity>1</Quantity>         <Subtotal>389.00</Subtotal>         <Description>Muckalucket Bucket</Description>     </Item>     <NumberItems>1111</NumberItems>     <Total>3704.00</Total>     <OrderDate>07/07/2002</OrderDate>     <OrderNumber>8876</OrderNumber> </Order>";

document.write("<xml id='xmlDS'>"+xmlString+"</xmldd>");

/*
 * 创建 XmlDom 对象实例。
 */
function createXmlDom()
{
    var xmlVersions = new Array("MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
                                "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument", "Microsoft.XmlDom");

    for (var i=0; i<xmlVersions.length; i++)
    {
        try
        {
            var oXmlDom = new ActiveXObject(xmlVersions[i]);

            return oXmlDom;
        }
        catch (e) 
        {
            //alert(e.message);
        }
    }

    throw new Error("当前系统未安装 MSXML!");
}


function getNode(doc, xpath)
{
    var retval = "";

    var value = doc.selectSingleNode(xpath);

    if (value) retval = value.text;

    return retval;
}

function fillValues(itemIndex)
{
    document.forms[0].SKU.value = getNode(orderDoc, "/Order/Item[" + itemIndex + "]/SKU");
    document.forms[0].Price.value = getNode(orderDoc, "/Order/Item[" + itemIndex + "]/PricePer");
    document.forms[0].Quantity.value = getNode(orderDoc, "/Order/Item[" + itemIndex + "]/Quantity");
    document.forms[0].Total.value = getNode(orderDoc,"/Order/Item[" + itemIndex + "]/Subtotal");
    document.forms[0].Description.value = getNode(orderDoc, "/Order/Item[" + itemIndex + "]/Description");
}
function getDataNext()
{
    i++;

    if (i > items.length - 1) i = 0;

    fillValues(i);
}

function getDataPrev()
{
    i--;

    if (i < 0) i = items.length - 1;

    fillValues(i);
}

// 如果是文本数据源就这么处理!
/*
var dataSource = "order.xml";

var orderDoc = createXmlDom();

orderDoc.load(dataSource);
*/

var orderDoc = document.getElementById("xmlDS");
var items;
alert("orderDoc.readyState=sss"+orderDoc.readyState);
if (orderDoc.readyState == "complete")
{
    // 通过 XPath 方式读取全部订单项!
    items = orderDoc.selectNodes("/Order/Item");
}
var i = -1;
    //-->
    </script>
<body οnlοad="getDataNext();">
    <h2>
        XML Order Database</h2>
    <form>
        <table border="0">
            <tr>
                <td>
                    SKU</td>
                <td>
                    <input type="text" name="SKU"></td>
            </tr>
            <tr>
                <td>
                    Price</td>
                <td>
                    <input type="text" name="Price"></td>
            </tr>
            <tr>
                <td>
                    Quantity</td>
                <td>
                    <input type="text" name="Quantity"></td>
            </tr>
            <tr>
                <td>
                    Total</td>
                <td>
                    <input type="text" name="Total"></td>
            </tr>
            <tr>
                <td>
                    Description</td>
                <td>
                    <input type="text" name="Description"></td>
            </tr>
        </table>
        <input type="button" value="  <<  " οnclick="getDataPrev();">
        <input type="button" value="  >>  " οnclick="getDataNext();">
    </form>
</body>
</html>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值