Javascript 为什么';t XMLDocument.evaluate在此WMS GetCapabilities文档中查找节点

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() {

我正试图从中解析信息

下面的JavaScript适用于简单的XML测试文档,但我找不到从实际文档返回任何节点的XPath

他的想法只是列出WMS GetCapabilities XMl文档中的所有“层”节点

我做错了什么

谢谢,代码如下

<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,工作起来很有魅力。这让我找到了一些文档,其中解释了默认名称空间实际上是一个名称空间。。。与空名称空间不同的是,这一段似乎特别详细地阐述了不清楚的语义。