JavaScript读取XML

先贴上需要读取的xml文件格式:

(ProductLicenses.xml文件)

<?xml version="1.0" encoding="UTF-8"?>
<LicenseFile>
<Licenses>
<License ProductName="AAA" ProductVersion="1.x" KeySaveDate="2015-06-12">
<LicenseKey>aadadadadad666-d8</LicenseKey>
<SiteMessage>mySite1</SiteMessage>
</License>
<License ProductName="BBB" ProductVersion="2.x" KeySaveDate="2015-06-25">
<LicenseKey>asdf6fsdsdddfd-dd</LicenseKey>
<SiteMessage>mySite2</SiteMessage>
</License>
<License ProductName="CCC" ProductVersion="3.x" KeySaveDate="2015-07-02">
<LicenseKey>assdessertdsrt-3a</LicenseKey>
<SiteMessage>mySite3</SiteMessage>
</License>
</Licenses>
</LicenseFile>

示例一:文件中有多个<License>节点,要读取<License>节点下各个子节点的方法如下:

使用getElementsByTagName() 方法

function readXmlByTag(){
    var strXmlFile = "C:\\ProductLicenses.xml";
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async = false; 
    xmlDoc.load(strXmlFile);
    if(xmlDoc != null){
        var arrNodes = xmlDoc.getElementsByTagName("License");
        if(arrNodes != null){
            Log.Message("The [License] node's count in xml is:"+arrNodes.length);
            for(i=0;i<arrNodes.length;i++){  
                Log.Message(arrNodes[i].getAttribute("ProductName"));//read the node's property value
                var arrChildNodes = arrNodes[i].childNodes;
                if(arrChildNodes != null){
                    for(j=0; j<arrChildNodes.length; j++){
                        Log.Message(arrChildNodes[j].text);
                    }
                }
            }
        }
    }
    else{
        Log.Message("Fail to parse the xml file.");
    }
    
}

 

更详细的介绍可以参考:

http://blog.csdn.net/avon520/article/details/3345919

你可能感兴趣的:(js;xml)