XML初学笔记(六)

【本文是在阅读www.w3school.com.cn的教程时随手记下的内容,以免遗忘】

XML DOM

 

XML DOM (XML Document Object Model) 定义一套访问和操作 XML 文档的标准方法。

DOM XML 文档作为树结构来查看。能够通过 DOM 树来访问所有元素。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。

在下面的例子中,我们使用 DOM 引用从 <to> 元素中获取文本:

 

xmlDoc.getElementsByTagName( " to " )[ 0 ].childNodes[ 0 ].nodeValue 

 

  • xmlDoc -由解析器创建的 XML 文档
  • getElementsByTagName("to")[0] - 第一个 <to> 元素
  • childNodes[0] - <to> 元素的第一个子元素(文本节点)
  • nodeValue - 节点的值(文本本身)

解析 XML 文件 - 跨浏览器实例

下列代码把一个 XML 文档 ("note.xml") 载入 XML 解析器中:

< html >  
< head >  
< script  type ="text/javascript" >  
function parseXML() 

try //Internet Explorer 

xmlDoc
=new ActiveXObject("Microsoft.XMLDOM"); 
}
 
catch(e) 

try //Firefox, Mozilla, Opera, etc. 

xmlDoc
=document.implementation.createDocument("","",null); 
}
 
catch(e) 

alert(e.message); 
return
}
 
}
 
xmlDoc.async
=false
xmlDoc.load(
"note.xml"); 
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 >  
</ head >  
< body  onload ="parseXML()" >  
< h1 > W3School.com.cn Internal Note </ h1 >  
< p >< b > To: </ b >   < span  id ="to" ></ span >< br  />  
< b > From: </ b >   < span  id ="from" ></ span >< br  />  
< b > Message: </ b >   < span  id ="message" ></ span >  
</ p >  
</ body >  
</ html >  

 

输出:

W3School.com.cn Internal Note 
To: George 
From: John 
Message: Don't forget the meeting this weekend! 

 

重要注释

如需从 XML 中提取文本 "John",语法是:

getElementsByTagName("from")[0].childNodes[0].nodeValue 

 

在这个 XML 例子中,只有一个 <from> 标签中,但是仍然需要规定数组的下标 [0],这是因为 XML 解析器方法 getElementsByTagName() 返回所有 <from> 节点的一个数组。

解析 XML 字符串 - 跨浏览器实例

下面的代码加载并解析一个 XML 字符串:

< html >  
< head >  
< script  type ="text/javascript" >  
function parseXML() 

text
="<note>"
text
=text+"<to>George</to>"
text
=text+"<from>John</from>"
text
=text+"<heading>Reminder</heading>"
text
=text+"<body>Don't forget the meeting this weekend!</body>"
text
=text+"</note>"
try //Internet Explorer 

xmlDoc
=new ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.async
="false"
xmlDoc.loadXML(text); 
}
 
catch(e) 

try // Firefox, Mozilla, Opera, etc. 

parser
=new DOMParser(); 
xmlDoc
=parser.parseFromString(text,"text/xml"); 
}
 
catch(e) 

alert(e.message); 
return
}
 
}
 
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 >  
</ head >  
< body  onload ="parseXML()" >  
< h1 > W3School.com.cn Internal Note </ h1 >  
< p >< b > To: </ b >   < span  id ="to" ></ span >< br  />  
< b > From: </ b >   < span  id ="from" ></ span >< br  />  
< b > Message: </ b >   < span  id ="message" ></ span >  
</ p >  
</ body >  
</ html >  

 

输出:

W3School.com.cn Internal Note 
To: George 
From: John 
Message: Don't forget the meeting this weekend! 

 

 

注:XML DOM不是很熟悉,看来也要看看教程了~

你可能感兴趣的:(xml)