博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xpath NOT IE
阅读量:6909 次
发布时间:2019-06-27

本文共 4272 字,大约阅读时间需要 14 分钟。

1、

http://www.w3school.com.cn/xmldom/dom_domparser.asp

chrome 中 “for (var z in domparse)”操作后,发现 DOMParser 只有一个方法 parseFromString

 

2、

https://developer.mozilla.org/zh-CN/docs/Web/API/DOMParser

1 var parser = new DOMParser(); 2 var doc = parser.parseFromString(stringContainingXMLSource, "application/xml"); 3 // 返回一个Document对象,但不是SVGDocument也不是HTMLDocument对象 4  5 parser = new DOMParser(); 6 doc = parser.parseFromString(stringContainingXMLSource, "image/svg+xml"); 7 // 返回一个SVGDocument对象,同时也是一个Document对象. 8  9 parser = new DOMParser();10 doc = parser.parseFromString(stringContainingHTMLSource, "text/html")11 // 返回一个HTMLDocument对象,同时也是一个Document对象.

 

3、

通过 xml字符串 得到 document对象:

1 function LoadStrXml(_strXml) 2 { 3     var xmlDoc=null; 4     //判断浏览器的类型 5     //支持IE浏览器  6     if(!window.DOMParser && window.ActiveXObject){   //window.DOMParser 判断是否是非ie浏览器 7         var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM']; 8         for(var i=0;i

 

4、

测试代码(chrome):

1     function NsResolver_Multi(prefix) 2     { 3         var ns = 4         { 5             "cge" : "http://iec.ch/TC57/2005/SVG-schema#", 6             "xlink" : "http://www.w3.org/1999/xlink", 7             "hzsvg" : "http://holleygrid.cn/svg" 8         }; 9         console.log("ns[prefix] : "+ns[prefix]);10         var str = null;11         if (ns[prefix])12         {13             str = ns[prefix];14         }15         else16             str = "http://www.w3.org/2000/svg";17         console.log("NsResolver_Multi return  : "+str);18         return str;19     }20 21     function NsResolver_Root()22     {23         return "http://www.w3.org/2000/svg";24     }25 26     window.onload = function()27     {28         console.log("window.onload");29 //*30         console.log("");31 32         domParser = new  DOMParser();33         var strXml = ''34             +'
'35 +'
zzz
'36 +'
ccccc
'37 +'
';38 var xmlDoc = domParser.parseFromString(strXml, 'application/xml');39 40 var xpathResult = xmlDoc.evaluate("//zzz:z", xmlDoc, NsResolver_Multi, 0, null); // ZC: 这里的“myns”是随便写的,只要不是"NsResolver_Multi"中的"cge"/"xlink"/"hzsvg" 就行(对于这里的讲解别死脑经,注意变换)。41 //var xpathResult = xmlDoc.evaluate("//zzz:z", xmlDoc, NsResolver_Root, 0, null);42 if ((xpathResult.resultType == 4) || (xpathResult.resultType == 5))43 {44 var node = xpathResult.iterateNext();45 console.log("node : "+node);46 //alert("node : "+node);47 }48 49 xpathResult = xmlDoc.evaluate("//xlink:c", xmlDoc, NsResolver_Multi, 0, null);50 if ((xpathResult.resultType == 4) || (xpathResult.resultType == 5))51 {52 var node = xpathResult.iterateNext();53 console.log("node : "+node);54 //alert("node : "+node);55 }56 //*/57 };

4.1、

打印输出:

1 window.onload2 3 ns[prefix] : undefined4 NsResolver_Multi return  : http://www.w3.org/2000/svg5 node : [object SVGElement]6 ns[prefix] : http://www.w3.org/1999/xlink7 NsResolver_Multi return  : http://www.w3.org/1999/xlink8 node : [object Element]

 

 

 

另一个例子:

1       function NameSpace_z(_strPrefix) 2     { 3         var str = null; 4         if (_strPrefix == "cge") 5             str = "http://iec.ch/TC57/2005/SVG-schema#"; 6         else if (_strPrefix == "xlink") 7             str = "http://www.w3.org/1999/xlink"; 8         else if (_strPrefix == "hzsvg") 9             str = "http://holleygrid.cn/svg";10         else11             str = "http://www.w3.org/2000/svg";12         //console.log("NameSpace_z return  : "+str);13         return str;14     }15     16     window.onload = function()17     {18         var svg = document.getElementsByTagName("svg")[0];19         var xpathResult = document.evaluate("//zzz:g[@id='BusbarSectionClass']", svg, NameSpace_z, 0, null); // 从 节点svg 开始查询20         if ((xpathResult.resultType == 4) || (xpathResult.resultType == 5))21         {22             var node = xpathResult.iterateNext();23             console.log("node : "+node);24             return node;25         }26     }

 

 

ZC:

关于 自定义 命名空间 Resolver,参考:“”

 

Z

 

转载于:https://www.cnblogs.com/codeskilla/p/5002967.html

你可能感兴趣的文章
OSChina 周五乱弹 —— 动弹的起源
查看>>
Android BaseAdapter使用介绍
查看>>
react 使用 fetch 向spring mvc后台发起ajax 请求 options 403
查看>>
Android_TextSwitcher和ImageSwitcher
查看>>
五,JavaWeb简略的谈下前端技术<二>CSS层叠样式表
查看>>
LinkedBlockingQueue源码学习笔记
查看>>
SolrCloud 6.6.2 之 Collection API
查看>>
运用Oltu框架搭建OAuth的Demo工程
查看>>
优化Android应用内存的若干方法
查看>>
ajax get和post跨域问题解决方法
查看>>
Android库和项目收集
查看>>
组织机构构建说明
查看>>
gitlab安装包下载的两种方法
查看>>
深入理解Loadrunner中的Browser Emulation
查看>>
mysql 中文按照拼音排序
查看>>
Python的函数参数
查看>>
android开发之安全防护
查看>>
使用AnimationListener设置应用开启时的欢迎界面
查看>>
shell脚本编程学习之路-字符串测试表达式
查看>>
memcache,php装载memcache模块
查看>>