XMLDom解析XML

本文介绍了一种使用JavaScript和ActiveX对象创建DOM并加载XML文件的方法。通过实例演示了如何获取XML文档中的元素及其属性,展示了如何利用DOM接口进行节点操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding
="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
  
var oXMLDom=createDocument();
  
var xXML="<root><person><name>gaoxiang</name></person></root>"
  oXMLDom.async
=true/*异步读取xml*/
  oXMLDom.loadXML(xXML);
  
/*oXMLDom.load("test.xml"); 从文件读入xml*/
  oXMLDom.onreadystatechange
=function(){
     
if(oXMLDom.readyState==4){
        document.write(
"load xml success");
     }

  }

  
function createDocument(){
     
var aVersions[]={"MSXML2.DOMDocument.5.0",
                      
"MSXML2.DOMDocument.4.0",
                      
"MSXML2.DOMDocument.3.0",
                      
"MSXML2.DOMDocument",
                      
"Microsoft.xmlDom"}
;
     
for(var i=0;i<aVersions.length;i++){
        
try{
          
var oXMLDom=new ActiveXObject(aVersions[i]);
          
return oXMLDom;
        }

        
catch(oError){
          
        }

     }

  }

  
</script>
</head>
<body>

</body>
</html>

 

<?xml version="1.0" encoding="utf-8"?>
<books>
  
<book isbn="1">book1</book>
  
<book isbn="2">book2</book>
  
<book isbn="3">book3</book>
  
<book isbn="4">book4</book>
  
<book isbn="5">book5</book>
</books>

 

<script type="text/javascript">
  
var oXMLDom;
  
function createDocument(){
     
var aVersions=["MSXML2.DOMDocument.5.0",
                      
"MSXML2.DOMDocument.4.0",
                      
"MSXML2.DOMDocument.3.0",
                      
"MSXML2.DOMDocument",
                      
"Microsoft.xmlDom"];
     
for(var i=0;i<aVersions.length;i++){
        
try{
          
var oXMLDom=new ActiveXObject(aVersions[i]);
          
return oXMLDom;
        }

        
catch(oError){
          
        }

     }

  }

  
  
function readXML(){
    oXMLDom
=createDocument();
  
    oXMLDom.async
=true;
    oXMLDom.load(
"test.xml"); 
    oXMLDom.onreadystatechange
=function(){
     
if(oXMLDom.readyState==4){
         
/* 获得第一个book的引用,用oRoot.childNodes[0]同样效果*/
         
var oRoot=oXMLDom.documentElement;/*<books>*/
         
var oFirstBook=oRoot.firstChild;  /*<book isbn="1">*/
        
         
/* book文档有四个阶段,应该打印出5 */
         
var iChildren=oRoot.childNodes.length;
         alert(iChildren);
         
         
/* 以下代码获得oRoot句柄 */
         
var oParent=oFirstBook.parentNode; /*<books>*/
         
         
var oSecondBook=oFirstBook.nextSibling;  /*<book isbn="2">*/
         
         
var oFirstBook2=oSecondBook.previousSibling  /*<book isbn="1">*/
         
         
/*抽取数值*/
         
var sText=oRoot.childNodes[2].text; /*text是微软特有的属性*/   /*book3*/
         
var sText2=oRoot.childNodes[2].firstChild.nodeValue;          /*book3*/
         alert(sText
+"--"+sText2);
         
        
    
      }

    }

  }

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值