Тестирование элемента в списке

У меня нет доступа ни к DigitalOcean Spaces, ни к Amazon S3, поэтому воспринимайте это как отправную точку. Рассматривая документацию API для DigitalOcean Spaces (где пример для Python) и код Scrapy для FilesPipeline (на котором основан ImagesPipeline), я бы сказал, что вы также необходимо настроить по крайней мере AWS_ENDPOINT_URL в settings.py, возможно, также другие AWS_* опции.

5
задан Mathias Müller 26 March 2014 в 10:20
поделиться

2 ответа

На самом деле использование строковых функций XPath является правильным способом сделать это. Все необходимо удостовериться, - то, что Вы тестируете на разделители также:

contains(concat(',' $list, ','), concat(',', $value, ','))

возвратил бы булево значение. Или Вы могли бы использовать один из них:

substring-before(concat('|,' $list, ',|'), concat(',', $value, ','))

или

substring-after(concat('|,' $list, ',|'), concat(',', $value, ','))

Если Вы получаете пустую строку как результат, $value не находится в списке.

Править:

Комментарий @Dimitre корректен: substring-before() (или substring-after()) также возвратил бы пустую строку, если найденная строка является первой (или последней) в списке. Избегать, чтобы, я добавил что-то в запуске и конце списка. Все еще contains() рекомендуемый способ сделать это.

8
ответ дан 13 December 2019 в 05:43
поделиться

В дополнение к решению XPath 1.0, обеспеченному Tomalak,

Используя XPath 2.0 можно маркировать список значений:

    exists(tokenize($list, ',')[. = $value])

оценивает к true() если и только если $value содержится в списке значений $list

4
ответ дан 13 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: