Not all ESRI WMSGetFeatureInfo formats parsed, p=me, r=cmoullet,erilem (closes #3177)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11741 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
bartvde
2011-03-29 09:44:07 +00:00
parent af2f3b7a70
commit 46fc3182e4
2 changed files with 38 additions and 4 deletions

View File

@@ -150,10 +150,25 @@ OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
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(

View File

@@ -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) {