javascript中的XML
2023-09-11 14:14:43 时间
IE下创建DOM并加载XML
var xmldoc = new ActiveXObject("Microsoft.XMLDOM"); xmldoc.load(url); //加载XML文件 xmldoc.loadXML(“<root><son/></root>”);//加载XML字符串 xmldoc.documentElement //获取根元素,仅IE支持非IE下创建DOM并加载XML
var xmldoc =document.implementation.createDocument("","",null); xmldoc.async =true; //异步加载 xmldoc.load(url);第一个參数指定文件的命名空间URL,第二个參数用于指定文件元素的标签名。第三个标签用于指定文档类型对象,一般为null
例
var xmldoc =document.implementation.createDocument("http://www.x-do.org","root",null);这行代码创建了表示<rootxmlns="http://www.x-do.org"/>的XML DOM
W3C标准的XML DOM不支持loadXML()方法。要将XML字符串解析为DOM,必须使用DOMParser对象,使用其parseFromString方法传入XML字符串表现形式:
var xmlParser = new DOMParser(); var xmlDom =xmlParser.parseFromString("<root />","text/xml"); //该方法返回一个XMLDOM对象 //第二个參数text/xml也能够是application/xml,两者都用来解析XML //还能够是application/xhtml+xml,用来解析XHTML,仅仅能用这三种MIME与直接解析XML字符串相相应的获取XML字符串的方法。IE中XML DOM对象具有仅仅读的xml属性,而W3C标准则没有相相应的属性,可是提供了能够用于相同的目的的XMLSerializer对象:
var serializer= new XMLSerializer(); var xmlStr =serializer.serializeToString(xmlDom,"text/xml"); //xmlDom为一个XML DOM节点对象 //而text/xml也可为application/xml能够把一个函数绑定到XML文档对象的onload事件(对于W3C兼容的浏览器)或onreadystatechange事件(对于WindowsInternet Explorer)。然后。绑定的函数能够用来处理XML文档的内容。
兼容地创建XML的DOM对象
if (typeof document.implementation.createDocument != "undefined") { xmldoc =document.implementation.createDocument("", "", null); xmldoc.onload = displayData; } else if(window.ActiveXObject) { xmldoc = new ActiveXObject("Microsoft.XMLDOM"); xmldoc.onreadystatechange = function () { if (docObj.readyState == 4) displayData(); }; } xmldoc.load(url); function displayData(){ }load()方法仅仅能够加载与包括JavaScript的页面存储于同一server上的文件,也就是说,不能够通过其它人的server加载XML文件
以同步模式加载文件时。JavaScript代码会等待文件全然加载后才继续运行代码;而以异步模式加载时,不会等待,能够使用事件处理函数来推断文件是否全然加载了。默认情况下。文件依照异步模式加载。要进行同步加载,仅仅需设置async特性为false
JS解析XML实例:
<script type="javascript"> var txt="<note>"; txt=txt+"<to>George</to>"; txt=txt+"<from>John</from>"; txt=txt+"<heading>Reminder</heading>"; txt=txt+"<body>Don't forget the meeting!</body>"; txt=txt+"</note>"; if (window.DOMParser) //非IE浏览器 { parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml"); } else //IE浏览器 { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt); } document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue; document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue; document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue; </script>
相关文章
- JavaScript中防止重复提交
- 【JavaScript】概述
- XML Handle by javax.xml.stream.*
- Bootstrap3.0学习第二十六轮(JavaScript插件——图片轮播)
- 面向对象的JavaScript(一)命名空间
- [Javascript] Broadcaster + Operator + Listener pattern -- 01
- [Javascript] Create Your First Iterator in JavaScript
- [Javascript] Avoiding Mutations in JavaScript with Immutable Data Structures
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain
- [Javascript] Delegate JavaScript (ES6) generator iteration control
- [Javascript] Intro to Recursion - Refactoring to a Pure Function
- [TypeScript] 1. Catching JavaScript Mistakes with TypeScript
- Javascript自由拖拽类
- [Javascript] Avoiding Mutations in JavaScript with Immutable Data Structures
- [Javascript] Conditionally spread entries to a JavaScript object
- [Functional Programming] Draw Items from One JavaScript Array to Another using a Pair ADT
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain
- [Javascript AST] 2. Introduction: Write a simple ESLint rule
- [Javascript] Proper use of console.assert in JavaScript
- [Javascript] Hoisting in JavaScript
- javascript中的循环
- XML——读取文件夹下所有的Xml文件,并修改属性,保留上次打开文件的位置
- javaScript实现归并排序
- chromium-embedded-how-to-execute-a-javascript-callback-from-c
- web前端框架Javascript开发基础之JavaScript作用域
- 请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用
- Javascript 创建对象方法的总结