Javascript 为什么';t XMLDocument.evaluate在此WMS GetCapabilities文档中查找节点
我正试图从中解析信息 下面的JavaScript适用于简单的XML测试文档,但我找不到从实际文档返回任何节点的XPath 他的想法只是列出WMS GetCapabilities XMl文档中的所有“层”节点 我做错了什么 谢谢,代码如下Javascript 为什么';t XMLDocument.evaluate在此WMS GetCapabilities文档中查找节点,javascript,xml,xpath,wms,Javascript,Xml,Xpath,Wms,我正试图从中解析信息 下面的JavaScript适用于简单的XML测试文档,但我找不到从实际文档返回任何节点的XPath 他的想法只是列出WMS GetCapabilities XMl文档中的所有“层”节点 我做错了什么 谢谢,代码如下 <html> <body> <script> var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() {
<html>
<body>
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(xhttp.responseText, "text/xml");
var iterator = xmlDoc.evaluate('Layer', xmlDoc.documentElement, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
var thisNode = iterator.iterateNext();
while (thisNode) {
documemnt.console.log(thisNode.textContent);
thisNode = iterator.iterateNext();
}
}
};
xhttp.open("GET", "https://geo.weather.gc.ca/geomet?service=WMS&request=GetCapabilities", true);
xhttp.send();
</script>
</body>
</html>
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
parser=新的DOMParser();
xmlDoc=parser.parseFromString(xhttp.responseText,“text/xml”);
var iterator=xmlDoc.evaluate('Layer',xmlDoc.documentElement,null,XPathResult.UNORDERED\节点\迭代器\类型,null);
var thisNode=iterator.iterateNext();
while(此节点){
documemnt.console.log(thisNode.textContent);
thisNode=iterator.iterateNext();
}
}
};
xhttp.open(“GET”https://geo.weather.gc.ca/geomet?service=WMS&request=GetCapabilities“,对);
xhttp.send();
我认为您需要学习如何考虑默认名称空间,使用evaluate
函数的第三个参数将前缀映射到层或标题等元素所在的名称空间,并在XPath表达式中使用该前缀:
var-req=new-XMLHttpRequest();
请求打开('GET','https://geo.weather.gc.ca/geomet?service=WMS&request=GetCapabilities');
req.onload=函数(){
var doc=this.responseXML;
var名称空间={wms:'http://www.opengis.net/wms' };
var结果=文件评估(
“/wms:wms_Capabilities/wms:Capability//wms:Layer/wms:Title”,
博士,
函数(前缀){返回名称空间[前缀];},
XPathResult.ORDERED\u节点\u快照\u类型,
无效);
var ol=document.createElement('ol');
对于(var i=0;i 请求发送()代码>Genius,工作起来很有魅力。这让我找到了一些文档,其中解释了默认名称空间实际上是一个名称空间。。。与空名称空间不同的是,这一段似乎特别详细地阐述了不清楚的语义。