Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScriptXML解析器:如何获取具有“0”的节点:&引用;以名义_Javascript_Xml_Domparser - Fatal编程技术网

JavaScriptXML解析器:如何获取具有“0”的节点:&引用;以名义

JavaScriptXML解析器:如何获取具有“0”的节点:&引用;以名义,javascript,xml,domparser,Javascript,Xml,Domparser,我有以下代码试图获取c:CreationDate节点: value = '<?xml version="1.0" encoding="UTF-8"?><content><c:CreationDate>2010-09-04T05:04:53Z</c:CreationDate></content>'; xml = (new DOMParser()).parseFromString(value, 'text/xml'); conso

我有以下代码试图获取c:CreationDate节点:

 value = '<?xml version="1.0" encoding="UTF-8"?><content><c:CreationDate>2010-09-04T05:04:53Z</c:CreationDate></content>';

 xml = (new DOMParser()).parseFromString(value, 'text/xml');

 console.log(xml.getElementsByTagName('c:CreationDate'));
value='2010-09-04T05:04:53Z';
xml=(新的DOMParser()).parseFromString(值'text/xml');
log(xml.getElementsByTagName('c:CreationDate');
不幸的是,它返回的是一个空数组,而不是包含xml中节点的数组。我认为这是因为“:”符号造成的

有办法逃脱吗

注意:请不要建议在ChildNode或类似的东西上使用。这对我来说不起作用,因为我的xml很复杂(这里只是一个示例),将来很可能会更改,而且我只能依赖于标记名


谢谢

c:CreationDate中的
c
表示前缀。名称空间前缀只是名称空间的快捷方式。必须使用
xmlns:c
属性在文档中的某处定义名称空间。但是在您的文档中缺少名称空间定义

所以它应该看起来像:

var value = '<?xml version="1.0" encoding="UTF-8"?>' +
            '<content>' +
            '  <c:CreationDate xmlns:c="http://my.namespace">2010-09-04T05:04:53Z</c:CreationDate>' +
            '</content>';
作为第一个参数,您必须传递真实的名称空间名称,而不是前缀

var value = '<?xml version="1.0" encoding="UTF-8"?>' +
            '<content xmlns:c="http://my.namespace">' +
            '  <c:CreationDate>2010-09-04T05:04:53Z</c:CreationDate>' +
            '</content>';
console.log(xml.getElementsByTagNameNS('http://my.namespace', 'CreationDate'));