if(grandchild.nodeType == 3) { 
if(grandchild.nodeType == 3 || grandchild.nodeType == 4) { 
    parseAttributes: function(node) {        var attributes = {};        // assume attributes are children of the first type 1 child        var childNode = node.firstChild;        var children, i, child, grandchildren, grandchild, name, value;        while(childNode) {            if(childNode.nodeType == 1) {                // attributes are type 1 children with one type 3 child                children = childNode.childNodes;                for(i=0; i<children.length; ++i) {                    child = children[i];                    if(child.nodeType == 1) {                        grandchildren = child.childNodes;                        if(grandchildren.length == 1) {                            grandchild = grandchildren[0];                            if(grandchild.nodeType == 3) {                                name = (child.prefix) ?                                        child.nodeName.split(":")[1] :                                        child.nodeName;                                value = grandchild.nodeValue.replace(                                                this.regExes.trimSpace, "");                                attributes[name] = value;                            }                        }                    }                }                break;            }            childNode = childNode.nextSibling;        }        return attributes;    },
2032	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/2032/85e9e309081df23270c7927e9c899f49468e550b/GML.js/buggy/lib/OpenLayers/Format/GML.js