Latest web development tutorials

XML 注意事項

這裡列出了您在使用XML 時應該盡量避免使用的技術。


Internet Explorer - XML 數據島

它是什麼?XML 數據島是嵌入到HTML 頁面中的XML 數據。

為什麼要避免使用它?XML 數據島只在Internet Explorer 瀏覽器中有效。

用什麼代替它?您應當在HTML 中使用JavaScript 和XML DOM 來解析並顯示XML。

如需更多有關JavaScript和XML DOM的信息,請訪問我們的XML DOM教程


XML 數據島實例

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

把XML 文檔綁定到HTML 文檔中的一個<xml> 標籤。 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>

嘗試一下»