From 9b7ef06aa25450da0741f8b06e2f983b6788b5f5 Mon Sep 17 00:00:00 2001 From: rldhont Date: Mon, 19 Mar 2018 17:49:07 +0100 Subject: [PATCH] [BUGFIX][Server] DescribeFeature does not clean attribute name and GetFeature update --- src/server/services/wfs/qgswfsdescribefeaturetype.cpp | 2 +- src/server/services/wfs/qgswfsgetfeature.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/server/services/wfs/qgswfsdescribefeaturetype.cpp b/src/server/services/wfs/qgswfsdescribefeaturetype.cpp index f12a59b1175..7a621e46219 100644 --- a/src/server/services/wfs/qgswfsdescribefeaturetype.cpp +++ b/src/server/services/wfs/qgswfsdescribefeaturetype.cpp @@ -263,7 +263,7 @@ namespace QgsWfs //xsd:element QDomElement attElem = doc.createElement( QStringLiteral( "element" )/*xsd:element*/ ); - attElem.setAttribute( QStringLiteral( "name" ), attributeName ); + attElem.setAttribute( QStringLiteral( "name" ), attributeName.replace( ' ', '_' ) ); QVariant::Type attributeType = fields.at( idx ).type(); if ( attributeType == QVariant::Int ) attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "integer" ) ); diff --git a/src/server/services/wfs/qgswfsgetfeature.cpp b/src/server/services/wfs/qgswfsgetfeature.cpp index 2e058efadef..728c53ab3a6 100644 --- a/src/server/services/wfs/qgswfsgetfeature.cpp +++ b/src/server/services/wfs/qgswfsgetfeature.cpp @@ -248,11 +248,17 @@ namespace QgsWfs QStringList::const_iterator plstIt; QList idxList; QgsFields fields = vlayer->fields(); + // build corresponding propertyname + QList propertynames; + for ( int idx = 0; idx < fields.count(); ++idx ) + { + propertynames.append( fields.field( idx ).name().replace( ' ', '_' ) ); + } QString fieldName; for ( plstIt = propertyList.begin(); plstIt != propertyList.end(); ++plstIt ) { fieldName = *plstIt; - int fieldNameIdx = fields.lookupField( fieldName ); + int fieldNameIdx = propertynames.indexOf( fieldName ); if ( fieldNameIdx > -1 ) { idxList.append( fieldNameIdx );