<分区>
我正在尝试使用 DOMParser 解析 XML,我可以使用 getElementsByTagName 获取具有简单标签名称的元素,但如果我尝试获取具有标签名称 smpte:image 的元素,则返回的数组为空。
有没有办法逃脱冒号?我尝试了 xmlDoc.getElementsByTagName('smpte\\:image')
但结果相同。
谢谢
标签 javascript
<分区>
我正在尝试使用 DOMParser 解析 XML,我可以使用 getElementsByTagName 获取具有简单标签名称的元素,但如果我尝试获取具有标签名称 smpte:image 的元素,则返回的数组为空。
有没有办法逃脱冒号?我尝试了 xmlDoc.getElementsByTagName('smpte\\:image')
但结果相同。
谢谢
最佳答案
命名空间是一个单独的实体,不是标签名称的一部分。您可以通过调用 xmlDoc.getElementsByTagName('image')
来查看,这将返回您的命名空间标签。
要仅获取 smpte
命名空间中的 image
标签,您应该使用 getElementsByTagNameNS :
xmlDoc.getElementsByTagNameNS(smpteNamespaceUri, 'image');
示例:
var xml = '<doc xmlns:smpte="http://example.com/xmlns/smpte"><smpte:image></smpte/image></doc>',
parser = new DOMParser(),
doc = parser.parseFromString(xml, 'application/xml');
console.log(doc.getElementsByTagNameNS('http://example.com/xmlns/smpte', 'image'));
// -> [smpte:image]
console.log(doc.getElementsByTagName('image'));
// -> [smpte:image]
关于javascript - 如何使用 getElementsByTagName 获取合格的标签名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24432786/
相关文章:
javascript - 如何使用 javascript 获取像素中左/右/上/下属性的值?
JavaScript 函数 : nothing executes after a for(x in y) loop?
javascript - 链接到 anchor (ajax url)不会调用 onBeforeUnload
javascript - 误导性 “Calling an asynchronous function without callback is deprecated” 警告
javascript - 不允许在可排序列表中排序,仅使用 connectWith 将它们移动到不同的可排序列表
javascript - 传递带参数的函数,但不传递其执行结果
javascript - 你如何调试像这样的 IE 和 jQuery 错误