目录
1,模板
1.1,加载xml文件
<script>
//aXMLFileName是文件路径名
fun createDom() {
try {
//ie浏览器判断
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
isLoaded = xmlDoc.load(aXMLFileName);
} else if (document.implementation && document.implementation.createDocument) {
try {
//兼容其他浏览器:如Firefox, Mozilla, Opera, etc.
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.async = false;
xmlDoc.load(aXMLFileName);
} catch(e) {
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET", aXMLFileName, false);
xmlhttp.send(null);
xmlDoc = xmlhttp.responseXML;
}
} else {
alert("load data error");
}
} catch(e) {
alert(e.message);
}
}
</script>
1.2,加载xml字符串
<script>
function createXml(str) {
if (document.all) { //IE浏览器
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(str);
return xmlDoc;
}
else { //非IE浏览器
return new DOMParser().parseFromString(xmlStr, "text/xml");
}
}
</script>
2,代码讲解
2.1,创建Document对象
<script type="text/javascript">
try //Internet Explorer
{
//IE浏览器下,创建dom对象
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}catch(e)
{
try{
//兼容其他浏览器:创造dom对象,如Firefox, Mozilla, Opera, etc.
xmlDoc=document.implementation.createDocument("","",null);
}catch(e)
{
alert(e.message)
}
}
</script>
2.2,xmlDom加载xml
2.2.1,加载xml文件
<script>
//IE和firefox代码一样
xmlDoc.load("/example/xdom/books.xml");
</script>
2.2.2,加载xml字符串
<script>
//ie浏览器
xmlDoc.LoadXML("xml字符串");
//firefox浏览器
var oParser=new DOMParser();
xmlDom=oParser.parseFromString(xmlStr,"text/xml");
</script>
2.2.3,加载设置---是否异步
异步:执行操作过程中,在出结果前可以把控制权交给其他操作,执行其他命令
使用场景:1,非互斥操作时,2,非原子操作
原子操作:一套指令集要么全部执行,要么都不执行
同步:当前操作出结果前,不能进行其他操作,具有鲜明的顺序特征
<script>
//xmlDoc对象的操作是否允许异步操作
xmlDoc.async = false;
//在js的load方法中,允许异步----加载xml文件的同时,加载其他文件,尽快显示页面
//在asp服务器上,不允许异步----防止还未加载完毕dom树,就执行xmlDom树的其他操作,引发异常
</script>