XML 注意事项


XML 注意事项

在您使用 XML 的时候为了保证使用的正确性,您需要注意哪些操作是允许的,哪些操作是不被 XML 支持的。请仔细阅读本节内容以了解更多!


这里列出了您在使用 XML 时应该尽量避免使用的技术。


Internet Explorer - XML 数据岛

它是什么? XML 数据岛是嵌入到 HTML 页面中的 XML 数据。

为什么要避免使用它? XML 数据岛只在 Internet Explorer 浏览器中有效。

用什么代替它? 您应当在 HTML 中使用 JavaScript 和 XML DOM 来解析并显示 XML。


XML 数据岛实例

本例使用 XML 文档 "cd_catalog.xml"。

把 XML 文档绑定到 HTML 文档中的一个 标签。id 属性定义数据岛的标识符,而 src 属性指向 XML 文件:

实例

本实例只适用于 IE 浏览器

<html>  
<body>  

<xml id="cdcat" src="cd_catalog.xml"></xml>  

<table border="1" datasrc="#cdcat">  
<tr>  
<td><span datafld="ARTIST"></span></td>  
<td><span datafld="TITLE"></span></td>  
</tr>  
</table>  

</body>  
</html>

<table> 标签的 datasrc 属性把 HTML 表格绑定到 XML 数据岛。

<span>标签允许 datafld 属性引用要显示的 XML 元素。在这个实例中,要引用的是 "ARTIST" 和 "TITLE"。当读取 XML 时,会为每个 <CD> 元素创建相应的表格行。


Internet Explorer - 行为

它是什么? Internet Explorer 5 引入了行为。行为是通过使用 CSS 样式向 XML (或 HTML )元素添加行为的一种方法。

为什么要避免使用它? 只有 Internet Explorer 支持 behavior 属性。

使用什么代替它? 使用 JavaScript 和 XML DOM(或 HTML DOM)来代替它。

实例 1 - 鼠标悬停突出

下面的 HTML 文件中的 <style> 元素为 <h1> 元素定义了一个行为:

<html>  
<head>  
<style type="text/css">  
h1 { behavior: url(behave.htc) }  
</style>  
</head>  
<body>  

<h1>Mouse over me!!!</h1>  

</body>  
</html>

下面显示的是 XML 文档 "behave.htc"(该文件包含了一段 JavaScript 和针对元素的事件句柄):

<attach for="element" event="onmouseover" handler="hig_lite" />  
<attach for="element" event="onmouseout" handler="low_lite" />  

<script>  
function hig_lite()  
{  
element.style.color='red';  
}  

function low_lite()  
{  
element.style.color='blue';  
}  
</script>

实例 2 - 打字机模拟

下面的 HTML 文件中的 <style> 元素为 id 为 "typing" 的元素定义了一个行为:

<html>  
<head>  
<style type="text/css">  
#typing  
{  
behavior:url(typing.htc);  
font-family:'courier new';  
}  
</style>  
</head>  
<body>  

<span id="typing" speed="100">IE5 introduced DHTML behaviors.  
Behaviors are a way to add DHTML functionality to HTML elements  
with the ease of CSS.<br /><br />How do behaviors work?<br />  
By using XML we can link behaviors to any element in a web page  
and manipulate that element.</p>v </span>  

</body>  
</html>

下面显示的是 XML 文档 "typing.htc":

<attach for="window" event="onload" handler="beginTyping" />  
<method name="type" />  

<script>  
var i,text1,text2,textLength,t;  

function beginTyping()  
{  
i=0;  
text1=element.innerText;  
textLength=text1.length;  
element.innerText="";  
text2="";  
t=window.setInterval(element.id+".type()",speed);  
}  

function type()  
{  
text2=text2+text1.substring(i,i+1);  
element.innerText=text2;  
i=i+1;  
if (i==textLength)  
{  
clearInterval(t);  
}  
}  
</script>