最好能把代码和原理讲明白
谢谢了!

解决方案 »

  1.   

    <script>
    function hehe()
    {
        var doc = new ActiveXObject("Microsoft.XMLDOM");
        doc.async="false";
        doc.load("<?xml version="1.0" encoding="GB2312"?><root><channel><title>HelloWorld</title></channel></root>");
        var root = doc.documentElement;
        var channel  = root.selectSingleNode("channel");
        var title = channel.childNodes[0];
        var titleText = title.text;
        alert(titleText);
    }
    window.onload=hehe;
    </script>
      

  2.   

    修正:
    <script>
    function   hehe()
    {
            var   doc   =   new   ActiveXObject("Microsoft.XMLDOM");
            doc.async="false";
            doc.loadXML("<?xml version='1.0' encoding='GB2312'?><root><channel><title>HelloWorld</title></channel></root>");
            var   root   =   doc.documentElement;
            var   channel     =   root.selectSingleNode("channel");
            var   title   =   channel.childNodes[0];
            var   titleText   =   title.text;
            alert(titleText);
    }
    window.onload=hehe;
    </script>
      

  3.   

    还有就是比如说把一个txt文件转换为XML呢?
    我可以多给你加分
    帮下吧
      

  4.   

    原理就是Dom,XmlDom与HtmlDom大同小异!前两天正好有人问文件数据源的问题,
    现在改成字符串数据源版本,
    代码如下,L@_@K:
    <!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="[email protected]" />
        <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+"</xml>");/*
     * 创建 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;
    if (orderDoc.readyState == "complete")
    {
        // 通过 XPath 方式读取全部订单项!
        items = orderDoc.selectNodes("/Order/Item");
    }
    var i = -1;
        //-->
        </script>
    <body onload="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="  <<  " onclick="getDataPrev();">
            <input type="button" value="  >>  " onclick="getDataNext();">
        </form>
    </body>
    </html>
      

  5.   

    别生气啊
    我还是不懂
    我就是想要用JS把一个TXT文件转换为XML
    其他功能都不需要
    谢谢各位
      

  6.   

    txt 内容是标准xml格式么?!order.txt
    <?xml version="1.0" encoding="utf-8"?>
    <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>js.loadXmlDom.html
    <!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.html</title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="Gao YiXiang" />
        <meta name="email" content="[email protected]" />
        <meta name="keywords" content="javascript dhtml dom" />
        <meta name="description" content="I love web development." />
        <script language="JavaScript">
        <!--
    /*
     * 创建 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) i = 1;    fillValues(i);
    }function getDataPrev()
    {
        i--;    if (i < 1) i = items.length;    fillValues(i);
    }var dataSource = "order.txt";var orderDoc = createXmlDom();orderDoc.load(dataSource);// 通过 XPath 方式读取全部订单项!
    var items = orderDoc.selectNodes("/Order/Item");var i = 0;
        //-->
        </script>
    </head>
    <body onload="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="  <<  " onclick="getDataPrev();">
            <input type="button" value="  >>  " onclick="getDataNext();">
        </form>
    </body>
    </html>