如何以跨浏览器的方式获取XML元素的属性?

时间:2010-06-29 06:40:31

标签: javascript xml cross-browser

Internet Explorer支持xml响应解析,并允许您执行

element.xml.attributes.getNamedItem('myAttr')

如何在基于标准的浏览器中对xml元素执行相同的操作?

元素的类型是[object Element]

2 个答案:

答案 0 :(得分:0)

使用standard DOM代替Microsoft的适当方法。 (假设您正在讨论的是正确的XML文档,而不是IE4时代的“XML数据岛”)

答案 1 :(得分:0)

好的,从这里使用FireBug得出答案:Versatile xml attribute regex with javascript

element.ownerDocument.evaluate("//@"+attributeName, element.ownerDocument, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null).iterateNext().nodeValue;

        function GetAttributeValueFromXmlElement(element, attrName) {
        if (element && element.xml) {
            //msie
            return $(element.xml)[0].attributes.getNamedItem(attrName).value;
        } else {
            //standard DOM
            if (true/*Should check if there's only one here and only where expected to be*/) {
                return element.ownerDocument
                    .evaluate("//@" + attrName, element.ownerDocument, null
                    , XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null)
                    .iterateNext().nodeValue;
            }
        }
    }