[OpenLayers-Commits] r11741 - in trunk/openlayers:
lib/OpenLayers/Format tests/Format
commits-20090109 at openlayers.org
commits-20090109 at openlayers.org
Tue Mar 29 05:44:12 EDT 2011
Author: bartvde
Date: 2011-03-29 02:44:07 -0700 (Tue, 29 Mar 2011)
New Revision: 11741
Modified:
trunk/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js
trunk/openlayers/tests/Format/WMSGetFeatureInfo.html
Log:
Not all ESRI WMSGetFeatureInfo formats parsed, p=me, r=cmoullet,erilem (closes #3177)
Modified: trunk/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js
===================================================================
--- trunk/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js 2011-03-29 09:43:20 UTC (rev 11740)
+++ trunk/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js 2011-03-29 09:44:07 UTC (rev 11741)
@@ -150,10 +150,25 @@
var featureNode = featureNodes[i];
var geom = null;
+ // attributes can be actual attributes on the FIELDS tag,
+ // or FIELD children
var attributes = {};
- for(var j=0, jlen=featureNode.attributes.length; j<jlen; j++) {
- var attribute = featureNode.attributes[j];
- attributes[attribute.nodeName] = attribute.nodeValue;
+ var j;
+ var jlen = featureNode.attributes.length;
+ if (jlen > 0) {
+ for(j=0; j<jlen; j++) {
+ var attribute = featureNode.attributes[j];
+ attributes[attribute.nodeName] = attribute.nodeValue;
+ }
+ } else {
+ var nodes = featureNode.childNodes;
+ for (j=0, jlen=nodes.length; j<jlen; ++j) {
+ var node = nodes[j];
+ if (node.nodeType != 3) {
+ attributes[node.getAttribute("name")] =
+ node.getAttribute("value");
+ }
+ }
}
response.push(
Modified: trunk/openlayers/tests/Format/WMSGetFeatureInfo.html
===================================================================
--- trunk/openlayers/tests/Format/WMSGetFeatureInfo.html 2011-03-29 09:43:20 UTC (rev 11740)
+++ trunk/openlayers/tests/Format/WMSGetFeatureInfo.html 2011-03-29 09:44:07 UTC (rev 11741)
@@ -4,7 +4,7 @@
<script type="text/javascript">
function test_read_FeatureInfoResponse(t) {
- t.plan(5);
+ t.plan(7);
var parser = new OpenLayers.Format.WMSGetFeatureInfo();
@@ -49,6 +49,25 @@
t.eq(features[1].attributes.STATE_NAME, 'Wyoming',
"Attribute STATE_NAME contains the right value");
+ text = '<FeatureInfoResponse>' +
+ '<FIELDS>' +
+ '<FIELD name="ID" value="B31A0154"/>' +
+ '<FIELD name="FID" value="31AL0011"/>' +
+ '</FIELDS>' +
+ '<FIELDS>' +
+ '<FIELD name="ID" value="B31A0153"/>' +
+ '<FIELD name="FID" value="31AL0011"/>' +
+ '</FIELDS>' +
+ '</FeatureInfoResponse>';
+
+ features = parser.read(text);
+
+ t.eq(features.length, 2,
+ "Parsed 2 features in total");
+
+ t.eq(features[1].attributes.FID, '31AL0011',
+ "Attribute FID contains the right value");
+
}
function test_read_msGMLOutput(t) {
More information about the Commits
mailing list