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 featureNode = featureNodes[i];
|
||||||
var geom = null;
|
var geom = null;
|
||||||
|
|
||||||
|
// attributes can be actual attributes on the FIELDS tag,
|
||||||
|
// or FIELD children
|
||||||
var attributes = {};
|
var attributes = {};
|
||||||
for(var j=0, jlen=featureNode.attributes.length; j<jlen; j++) {
|
var j;
|
||||||
var attribute = featureNode.attributes[j];
|
var jlen = featureNode.attributes.length;
|
||||||
attributes[attribute.nodeName] = attribute.nodeValue;
|
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(
|
response.push(
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
function test_read_FeatureInfoResponse(t) {
|
function test_read_FeatureInfoResponse(t) {
|
||||||
t.plan(5);
|
t.plan(7);
|
||||||
|
|
||||||
var parser = new OpenLayers.Format.WMSGetFeatureInfo();
|
var parser = new OpenLayers.Format.WMSGetFeatureInfo();
|
||||||
|
|
||||||
@@ -49,6 +49,25 @@
|
|||||||
t.eq(features[1].attributes.STATE_NAME, 'Wyoming',
|
t.eq(features[1].attributes.STATE_NAME, 'Wyoming',
|
||||||
"Attribute STATE_NAME contains the right value");
|
"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) {
|
function test_read_msGMLOutput(t) {
|
||||||
|
|||||||
Reference in New Issue
Block a user