zoukankan      html  css  js  c++  java
  • javascript Xml兼容性随笔

    一、前言

    (function (window) {
        if (!window.jasen) {
            window.jasen = {};
        }
    
        if (!window.jasen.core) {
            window.jasen.core = {};
        }
    
        //------------------------------------------------
        // XML operation below.
        //------------------------------------------------
        if (!window.jasen.core.Xml) {
            window.jasen.core.Xml = {};
        }
    
        if (typeof jasen.core.Xml != "object") {
            throw new Error("Invalid entity jasen.core.Xml!");
        }
    
        function createXmlDocument() {
            //IE 
            if (window.ActiveXObject) {
                return new ActiveXObject("Microsoft.XMLDOM");
            }
            //W3C
            else if (document.implementation && document.implementation.createDocument) {
                return document.implementation.createDocument('', '', null);
            }
    
            throw new Error("Xml is not supported by your brower!");
        }
    
        function loadXmlFile(xmlFile) {
            var xmlDocument = createXmlDocument();
            xmlDocument.async = false;
            xmlDocument.load(xmlFile);
            return xmlDocument;
        }
    
        function loadXmlText(xmlText) {
            // IE Must be tested first

    if (window.ActiveXObject) { var xmlDocument = new ActiveXObject("Microsoft.XMLDOM"); xmlDocument.async = false; xmlDocument.loadXML(xmlText); return xmlDocument; } // W3C else if(window.DOMParser) { return (new DOMParser()).parseFromString(xmlText, "text/xml"); } throw new Error("Xml is not supported by your brower!"); } var Xml = window.Xml = window.jasen.core.Xml; Xml.createDocument = createXmlDocument; Xml.loadFile = loadXmlFile; Xml.loadText = loadXmlText; })(window);

     二、范例

     <script language="javascript" type="text/javascript">
            function testXml() {
                var xmlDoc = Xml.loadFile("/Xml/House.xml");
                var xmlDocElement = xmlDoc.documentElement; 
                var nodes = xmlDocElement.getElementsByTagName("city");
                var currNode = null;
                 
                for (var i = 0; i < nodes.length; i++) {
                    currNode = nodes[i]
                }
    
                var xmlText = "<address><city name='北京'><price>150万</price><type>一室三居</type></city></address>";
                xmlDocElement = Xml.loadText(xmlText);
    
                var cityName =  xmlDocElement.selectSingleNode("address/city/@name").nodeValue;
                var price = xmlDocElement.selectSingleNode("address/city/price/text()").nodeValue;
            } 
        </script>
  • 相关阅读:
    javascript练习:87设置对象事件的方法
    javascript练习:810事件与this运算符
    SQL: case when的用法(转)
    C++ :stringstream介绍,使用方法与例子(转)
    【玩转.Net MF – 01】Flash远程读写
    【.Net Micro Framework PortingKit – 13】LCD驱动开发
    【玩转.Net MF – 03】远程文件查看器
    【玩转.Net MF – 02】让PC成为MF的鼠标键盘
    【.Net Micro Framework PortingKit – 12】SysTick驱动开发
    【.Net Micro Framework PortingKit – 11】NandFlash驱动开发
  • 原文地址:https://www.cnblogs.com/jasenkin/p/javascript_xml.html
Copyright © 2011-2022 走看看