diff --git a/src/core/qgsogcutils.cpp b/src/core/qgsogcutils.cpp index 7f8377ff0bd..464d52ec310 100644 --- a/src/core/qgsogcutils.cpp +++ b/src/core/qgsogcutils.cpp @@ -1603,6 +1603,16 @@ QgsExpression* QgsOgcUtils::expressionFromOgcFilter( const QDomElement& element QgsExpression *expr = new QgsExpression(); + // check if it is a single string value not having DOM elements + // that express OGC operators + if ( element.firstChild().nodeType() == QDomNode::TextNode ) + { + expr->setExpression( element.firstChild().nodeValue() ); + return expr; + } + + // then check OGC DOM elements that contain OGC tags specifying + // OGC operators. QDomElement childElem = element.firstChildElement(); while ( !childElem.isNull() ) { diff --git a/src/core/symbology-ng/qgssymbollayerutils.cpp b/src/core/symbology-ng/qgssymbollayerutils.cpp index cabc25dcab5..4875ae2c146 100644 --- a/src/core/symbology-ng/qgssymbollayerutils.cpp +++ b/src/core/symbology-ng/qgssymbollayerutils.cpp @@ -2515,14 +2515,6 @@ bool QgsSymbolLayerUtils::functionFromSldElement( QDomElement &element, QString return false; } - // check if it is a single string value - if ( elem.hasChildNodes() && - elem.firstChild().nodeType() == QDomNode::TextNode ) - { - function = elem.firstChild().nodeValue(); - return true; - } - // parse ogc:Filter QgsExpression *expr = QgsOgcUtils::expressionFromOgcFilter( elem ); if ( !expr )