IE, Safari, and Firefox all deal with XML elements with namespaces in different
ways. I can't even make thigns work in *two* browsers at once -- what a pain. So, we'll wrap up all the browser-specific stuff in OpenLayers.Ajax.getElementsByTagNameNS(), which contains the browser funkies, and as a benefit, we get working WFS in IE. git-svn-id: http://svn.openlayers.org/trunk/openlayers@1650 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -300,3 +300,8 @@ OpenLayers.Ajax.Request.prototype = OpenLayers.Util.extend(new OpenLayers.Ajax.B
|
||||
}
|
||||
});
|
||||
|
||||
OpenLayers.Ajax.getElementsByTagNameNS = function(parentnode, nsuri, nsprefix, tagname) {
|
||||
return parentnode.getElementsByTagNameNS ?
|
||||
parentnode.getElementsByTagNameNS(nsuri, tagname)
|
||||
: parentnode.getElementsByTagName(nsprefix + ':' + tagname);
|
||||
}
|
||||
|
||||
@@ -47,8 +47,8 @@ OpenLayers.Feature.WFS.prototype =
|
||||
processXMLNode: function(xmlNode) {
|
||||
//this should be overridden by subclasses
|
||||
// must return an Object with 'id' and 'lonlat' values set
|
||||
var point = xmlNode.getElementsByTagName("Point");
|
||||
var text = OpenLayers.Util.getXmlNodeValue(point[0].getElementsByTagName("coordinates")[0]);
|
||||
var point = OpenLayers.Ajax.getElementsByTagNameNS(xmlNode, "http://www.opengis.net/gml", "gml", "Point");
|
||||
var text = OpenLayers.Util.getXmlNodeValue(OpenLayers.Ajax.getElementsByTagNameNS(point[0], "http://www.opengis.net/gml","gml", "coordinates")[0]);
|
||||
var floats = text.split(",");
|
||||
return {lonlat: new OpenLayers.LonLat(parseFloat(floats[0]),
|
||||
parseFloat(floats[1])),
|
||||
|
||||
@@ -101,8 +101,7 @@ OpenLayers.Tile.WFS.prototype =
|
||||
doc = OpenLayers.parseXMLString(request.responseText);
|
||||
}
|
||||
|
||||
var resultFeatures = doc.getElementsByTagName("featureMember");
|
||||
|
||||
var resultFeatures = OpenLayers.Ajax.getElementsByTagNameNS(doc, "http://www.opengis.net/gml","gml", "featureMember");
|
||||
this.addResults(resultFeatures);
|
||||
},
|
||||
|
||||
|
||||
@@ -482,6 +482,8 @@ OpenLayers.Util.getXmlNodeValue = function(node) {
|
||||
val = node.text;
|
||||
if (!val)
|
||||
val = node.textContent;
|
||||
if (!val)
|
||||
val = node.firstChild.nodeValue;
|
||||
},
|
||||
function() {
|
||||
val = node.textContent;
|
||||
|
||||
Reference in New Issue
Block a user