如何使用纯javascript读取XML文档中自关闭标记的属性? 例如。获得" url"的价值在下面的xml元素中?
<channel>
<item>
<title>News Title Goes Here<title>
<media:thumbnail width="144" height="81" url="http://news.bbcimg.co.uk/media/images/80270000/jpg/_80270552_mjadzelics_cleared_07.jpg"/>
</item>
<channel>
javascript调用 getElementsByTagName 适用于标题节点,但不适用于自闭媒体:缩略图节点
答案 0 :(得分:0)
我正在用这个作为一个字符串... idk你正在采取什么方法,但这应该有所帮助。
你没有关闭你的标题标签,是一回事。
xml修复:
<title>News Title Goes Here</title>
JS
var xml = (new DOMParser()).parseFromString(xml, "text/xml").querySelectorAll('[url]'),
mediaEls = ([].slice.call(xml)).filter(function(a) { return a.tagName == 'media:thumbnail'}),
urls = mediaEls.map(function(a, i) { return a.getAttribute('url') });
console.log(urls);
// ["http://news.bbcimg.co.uk/media/images/80270000/jpg/_80270552_mjadzelics_cleared_07.jpg"]
答案 1 :(得分:0)
我设法使用不同的方法访问该属性。我使用的javascript xml调用是getElementsByTagNameNS,但对于较旧的IE浏览器,我回到了getElementsByTagName调用。
请参阅下面的实施代码。
function getElementsByTagNameNS(xml, namespace, prefix, tag)
{
return xml.getElementsByTagNameNS ? xml.getElementsByTagNameNS(namespace, tag) : xml.getElementsByTagName(prefix + ':' + tag);
}
要使用它:
var x = xmlDoc.getElementsByTagName("item");
var imgUrl = x.getElementsByTagNameNS("*", "thumbnail").getAttribute("url");