// JScript 文件
//检查浏鉴器类型。。。
function IEOrFire()
{
this.isIE=true;
if (window.ActiveXObject)
{
isIE=true;
}
else
{
isIE=false;
}
return isIE;
}
//创建xml对象
function CreateXmlDoc()
{
var xmlDoc=null;
if (IEOrFire())
{
xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
}
else
{
if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument("","",null);
}
}
xmlDoc.async = false;
xmlDoc.resolveExternals = false;
xmlDoc.validateOnParse = false;
xmlDoc.preserveWhiteSpace = true;
return xmlDoc;
}
//从字符串创建XML对象(XML字符串)
function LoadXMLForString(xmlStr)
{
var xmlDoc=CreateXmlDoc();
if(IEOrFire())
{
xmlDoc.loadXML(xmlStr);
}
else
{
var oParser = new DOMParser();
xmlDoc = oParser.parseFromString(xmlStr,"text/xml");
}
return xmlDoc
}
从外部文件创建XML文件(文件路径)
function getXMLForURL(url)
{
var xmlDoc=CreateXmlDoc();
if (IEOrFire())
{
xmlDoc.load(url);
}
else
{
xmlDoc = getXML(url).responseXML;
}
return xmlDoc
}
//获得节点字节点
//getXMLArray("BlogPass.",生成xml字符串);
function getXMLArray(name,xmlStr)
{
var node_xml=null;
var xmlDoc=LoadXMLForString(xmlStr);
var keys = name.split('.');
var node = xmlDoc.documentElement; // 得到根节点
var rtn = new Array();
var n = 0;
for(var i=0; i<keys.length; i++)
{
var childs = node.childNodes; // 得到子节点
var key = keys[i];
for(var k=0; k<childs.length; k++)
{
var child = childs[k];
if(child.nodeName == key)
{
// 判断子节点是否符合
if(i == keys.length-1)
{
rtn[n] = child;
n++;
}
else
{
node = child;
break;
}
}
}
}
node_xml=rtn;
return rtn;
}
//创建ajax技术
function CreateXMLHTTP2()
{
var xmlhttp=null;
if (window.ActiveXObject)
{
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
else if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
return xmlhttp;
}
//通过ajax技术获取xml数据
function getXML(url)
{
var xmlHttp=CreateXMLHTTP2();
if (xmlHttp!=null)
{
xmlHttp.open("GET",url,false);
xmlHttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.11");
return false;
}
return xmlHttp;
}
//生成xmlDoc对象,有内容的而不是空的
function getDocumentRoot(xmlstr)
{
var xmlDoc=LoadXMLForString(xmlstr);
return xmlDoc.documentElement;//得到根节点
}
//获得节点内容
//getNodeValue(xmlDoc,"BlogPass.");
function getNodeValue(xmlDoc,name)
{
return this.getValue(xmlDoc,name);
}
//根据节点获得节点下子节点内容
function getValue(xmLDoc, name)
{
var node = xmLDoc.documentElement; // 得到根节点
var keys = name.split('.');
for(var i=0; i<keys.length; i++)
{
var childs = node.childNodes; // 得到子节点
var key = keys[i];
for(var k=0; k<childs.length; k++)
{
var child = childs[k];
if(child.nodeName == key)
{
// 判断子节点是否符合
if(child.childNodes.length == 1)
{
// 如果没有字节点,返回值
if(!window.ActiveXObject)
{
return childs[k].textContent;
}
else
{
return childs[k].text
}
}
else
{
// 还有子节点,继续分析
node = child;
break;
}
}
}
}
return "";
}
调用方式如下:
function XMLNode(strXML)
{
var strXML="<?xml version=/"1.0/" encoding=/"utf-8/" ?><xmlList><BlogPass>map</BlogPass><Result>ok</Result></xmlList>";
var xmlDoc=LoadXMLForString(strXML);
var pass=getNodeValue(xmlDoc,"BlogPass.");
var result=getNodeValue(xmlDoc,"Result");
}