Format.WMSGetFeatureInfo: also parse empty elements, p=me,r=erilem (closes #2867)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11688 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
bartvde
2011-03-10 16:36:30 +00:00
parent 9af89ff189
commit 046f0a39ed
2 changed files with 28 additions and 4 deletions

View File

@@ -230,12 +230,14 @@ OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
var child = children[i];
if (child.nodeType == 1) {
var grandchildren = child.childNodes;
if (grandchildren.length == 1) {
var name = (child.prefix) ?
child.nodeName.split(":")[1] : child.nodeName;
if (grandchildren.length == 0) {
attributes[name] = null
} else if (grandchildren.length == 1) {
var grandchild = grandchildren[0];
if (grandchild.nodeType == 3 ||
grandchild.nodeType == 4) {
var name = (child.prefix) ?
child.nodeName.split(":")[1] : child.nodeName;
var value = grandchild.nodeValue.replace(
this.regExes.trimSpace, "");
attributes[name] = value;

View File

@@ -52,7 +52,7 @@
}
function test_read_msGMLOutput(t) {
t.plan(12);
t.plan(13);
var parser = new OpenLayers.Format.WMSGetFeatureInfo();
@@ -69,6 +69,28 @@
t.eq(features.length, 0,
"Parsing empty msGMLOutput response succesfull");
// read empty attribute
text =
'<?xml version="1.0" encoding="ISO-8859-1"?>' +
'<msGMLOutput ' +
' xmlns:gml="http://www.opengis.net/gml"' +
' xmlns:xlink="http://www.w3.org/1999/xlink"' +
' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
' <AAA64_layer>' +
' <AAA64_feature>' +
' <gml:boundedBy>' +
' <gml:Box srsName="EPSG:28992">' +
' <gml:coordinates>107397.266000,460681.063000 116568.188000,480609.250000</gml:coordinates>' +
' </gml:Box>' +
' </gml:boundedBy>' +
' <FOO>bar</FOO>' +
' <EMPTY></EMPTY>' +
' </AAA64_feature>' +
' </AAA64_layer>' +
'</msGMLOutput>';
features = parser.read(text);
t.eq((features[0].attributes.EMPTY === null), true, "Empty attribute is parsed as null");
// read 1 feature from 1 layer
text =
'<?xml version="1.0" encoding="ISO-8859-1"?>' +