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:
@@ -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(
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user