[gdal-dev] Logics of CPLGetXMLValue and CPLFetchBool
Ari Jolma
ari.jolma at gmail.com
Wed Nov 15 22:01:25 PST 2017
Ari Jolma kirjoitti 15.11.2017 klo 15:51:
>
> Even Rouault kirjoitti 15.11.2017 klo 13:40:
>
>> On mercredi 15 novembre 2017 10:58:23 CET Ari Jolma wrote:
>>
>>
>> >
>>
>> > Thus the return value of CPLGetXMLBoolean can't use CPLGetXMLValue
>> if it
>>
>> > follows the logic of CPLFetchBool. That is true is existence and no
>> denial.
>>
>> >
>>
>> Why not
>>
>> CPLGetXMLBoolean(node) == CPLTestBool(CPLGetXMLValue(node,NULL,"NO")) ?
>>
>
> Ah, but I want to test with node *and* path. Node will be the top
> level node of the service XML.
>
> Anyway, I think I need to start with
>
> CSLFetchNameValueDef(poOpenInfo->papszOpenOptions
>
> and based on that explicitly set the element value to "TRUE" if the
> option exists and is not false. Then I can rely on the value of the
> element being "TRUE" if it is set.
I think the best approach is
CPLGetXMLBoolean(node, path) ==
node = CPLGetXMLNode(node, path);
if node == NULL return FALSE;
value = CPLGetXMLValue(node, NULL, "");
if value == "" return TRUE;
return CPLTestBool(value);
This should return TRUE if the node exists and does not contain
something that is considered untrue in GDAL, which is consistent with
how CPLFetchBool() behaves.
Ari
>
> Ari
>
>
>> --
>>
>> Spatialys - Geospatial professional services
>>
>> http://www.spatialys.com
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20171116/0c57ca83/attachment.html>
More information about the gdal-dev
mailing list