2010年6月28日 星期一

Javascript 剖析 XML

Step 1.讀取XML

function loadXML(xmlFilePath){
if(window.ActiveXObject)// code for IE {
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlFilePath);
}else if (document.implementation&&document.implementation.createDocument)// code for Mozilla, etc. {
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFilePath);
}else{
alert('您的瀏覽器不支持xml文件讀取,推薦使用IE5.0以上');
return null;
}
}

Step 2.瀏覽XML
//取得node方法
//Method 1 利用tag name
//1.1 取得陣列

var Area = xmlDoc.getElementsByTagName("test");
for (var i = 0 ; i < Area.length ; i++){
var node = Area[i].firstChild.nodeValue;
}

//Method 2 XPATH

xmlDoc.selectSingleNode("test").text;  //從根找起 xmlDoc.selectSingleNode("//test").text;  //回傳第一個找到的


Step 3.存取node (ex. lalala)
xmlNode.xml; // lalala
xmlNode.text; // lalala
xmlNode.getAttribute('what'); //ok

Step 4.讀子節點或父節點
xmlDoc.childNodes;
xmlDoc.parentNode;

Step 5.新增node

Step 6.儲存
xmlDoc.save("xxxx.xml");
原帖網址

javascript Math.random()

Make JavaScript Math.random() useful這篇文章是由Andrew Penry所寫,他將Javascript中的亂數函式Math.random()使用方式做了詳細說明。下列將原文的例子重新列表一次

 範例:Math.random()
值範圍:0 ~ 0.9999999(無窮小數)

【最大值】
 範例:Math.random() * 3
值範圍:0 ~ 2.9999999(無窮小數)

【有最小值】
 範例:Math.random() * 2 + 1
值範圍:1 ~ 1.9999999(無窮小數)

【四捨五入】
 範例:Math.round(Math.random*2+1)
值範圍:(1) - (1.5) - (2) - (2.5) - (3)

【取得大於指定數的最小整數值】
 範例:Math.ceil(Math.random()*2)
值範圍:(0) - (0.5) - (1) - (1.5) - (2)
 注意:在Javascript中,Math.ceil(0) 等於 0

【取得小於指定數的最大整數值】
 範例:Math.floor(Math.random()*2+1)
值範圍:(1) - (1.5) - (2) - (2.5) - (3)
*/

//下列為自訂範圍值的亂數函式(最小值,最大值)
function usefloor(min,max) {
return Math.floor(Math.random()*(max-min+1)+min);
}
function useceil(min,max) {
return Math.ceil(Math.random()*(max-min+1)+min-1);
}
function useround(min,max) {
return Math.round(Math.random()*(max-min)+min);
}

根據Andrew Penry的測試結果,使用floor的方法,各數出現的機率比較平均,所以floor會較好的選擇
原帖網址

搜尋此網誌