javascript - 如何使用 getElementsByTagName 获取合格的标签名称

标签 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 - 选定的文本和 xy 坐标

javascript - 链接到 anchor (ajax url)不会调用 onBeforeUnload

javascript - 误导性 “Calling an asynchronous function without callback is deprecated” 警告

javascript - 不允许在可排序列表中排序,仅使用 connectWith 将它们移动到不同的可排序列表

javascript - 传递带参数的函数,但不传递其执行结果

javascript - 你如何调试像这样的 IE 和 jQuery 错误

javascript - 使用CoreOS和多个Docker容器构建应用程序的正确方法

javascript - 如何使用 "JavaScript Switch Statement"重定向用户