| 发表于:2007-12-20 02:53:551楼 得分:0 |
- jscript code
function selectnodes(xmlnode,sxpath){
//如果浏览器是ie
if(window.activexobject){
//使用ie的xpath方式获得节点
return xmlnode.selectnodes(sxpath);
} else{
//firefox类浏览器的处理方式
var oevaluator = new xpathevaluator();
if(oevaluator != null){
var oresult = oevaluator.evaluate(sxpath,xmlnode,null,
xpathresult.ordered_node_iterator_type, null);
var nodes = new array();
var node;
while(node=oresult.iteratenext()){
nodes.push(node);
}
return nodes;
} else{
return null;
}
}
<br/> - jscript code
function loadxml(flag, xml) {
var xmldoc;
//针对ie浏览器
if (window.activexobject) {
var aversions = ["msxml2.domdocument.6.0","msxml2.domdocument.5.0",
"msxml2.domdocument.4.0","msxml2.domdocument.3.0",
"msxml2.domdocument","microsoft.xmldom"];
for (var i = 0; i < aversions.length; i++) {
try {
//建立xml对象
xmldoc = new activexobject(aversions[i]);
break;
} catch (oerror) {
}
}
if (xmldoc != null) {
//同步方式加载xml数据
xmldoc.async = false;
//根据xml文档名称装载
if (flag == true) {
xmldoc.load(xml);
} else {
//根据表示xml文档的字符串装载
xmldoc.loadxml(xml);
}
//返回xml文档的根元素节点。
//xmldoc现在已经表示一个dom树的根节点
//如果需要返回根节点,可以写成 return xmldoc
return xmldoc.documentelement;
}
} else {
//针对非ie浏览器
if (document.implementation && document.implementation.createdocument) {
/*
第一个参数表示xml文档使用的namespace的url地址
第二个参数表示要被建立的xml文档的根节点名称
第三个参数是一个doctype类型对象,表示的是要建立的xml文档中doctype部分的定义,通常我们直接使用null
这里我们要装载一个已有的xml文档,所以首先建立一个空文档,因此使用下面的方式
*/
xmldoc = document.implementation.createdocument("", "", null);
if (xmldoc != null) {
//根据xml文档名称装载
if (flag == true) {
//同步方式加载xml数据,和ie的方式相同
xmldoc.async = false;
xmldoc.load(xml);
} else {
//根据表示xml文档的字符串装载
var oparser = new domparser();
// parsefromstring的第一个参数就是xml的字符串,第二个参数固定是"text/xml"
xmldoc = oparser.parsefromstring(xml, "text/xml");
}
//返回xml文档的根元素节点。
return xmldoc.documentelement;
}
}
}
return null;
}
</br> - jscript code
var xmldoc = loadxml(true,"[color=#ff0000]yourxml[/color].xml"
var nametext = selectnodes(xmldoc,"//学生/text()"););
<br/> 取nametext的vaule值 | | |
|