Я использую этот запрос TWIG:
{% if xpath('md_file','//Archive/DOSSIER_MDPH[contains("#FILENAME#", Identifiant)]') %}{{ xpath('md_file','//Archive/DOSSIER_MDPH[contains("#FILENAME#", Identifiant)]/Personne/LIBLDOMA') }} {% endif %}
Иногда значение #FILENAME# включает символ ' (простая кавычка). В этом случае я получаю сообщение об ошибке, указывающее, что запрос неправильно сформирован. Например :
1. {% if xpath('md_file','//Archive/DOSSIER[contains("08 - Fiche d'option.pdf", Identifiant)]') %}{{ xpath('md_file','//Archive/DOSSIER[contains("08 - Fiche d'option.pdf", Identifiant)]/Personne/LIBLDOMA') }} {% endif %}^^^ Unexpected "}"
Как уйти от простой цитаты? Я попробовал добавить \ перед #FILENAME#, но это не сработало. Я также попробовал заменить «на».
К вашему сведению: stackoverflow.com/questions/14464384/…
@DarkBee, извини, но #FILENAME# — это переменная, содержащая случайные имена файлов. Это не постоянная строка. Поэтому иногда значение #FILENAME# может содержать кавычки. В моем примере #FILENAME# был заполнен «08 — Optionsheet.pdf». Спасибо
«Я получаю сообщение об ошибке, указывающее, что запрос» — Можете ли вы также опубликовать полную ошибку (со stacktrace)? Тогда у нас есть указание на то, где возникла фактическая ошибка.
@DarkBee, я использую приложение, которое использует Twig для настройки операций. Поэтому у меня нет доступа к полным ошибкам. У меня ошибка: Неожиданное «}». 1. {% if xpath('md_file','//Archive/DOSSIER[contains("08 - Fiche d'option.pdf", Identifiant)]') %}{{ xpath('md_file','//Архив /DOSSIER[contains("08 - Fiche d'option.pdf", Identifiant)]/Personne/LIBLDOMA') }} {% endif %}^^^ Неожиданный "}". Спасибо.
Не могу воспроизвести





Наконец я нашел решение:
{% set escapedFilename = "#FILENAME#"|escape %}
{% if xpath('md_file', '//Archive/DOSSIER[contains("' ~ escapedFilename ~ '", Identifiant)]') %}
Name: {{ xpath('md_file', '//Archive/DOSSIER[contains("' ~ escapedFilename ~ '", Identifier)]/Personne/LIBLDOMA') }}{% endif %}
«Иногда значение #FILENAME# включает в себя символ '». Что это значит?
#FILENAME#— это просто строка, как она может содержать символ'? Пожалуйста, дайте достаточно объяснений.xpathне является функцией по умолчанию внутри twig, поэтому мы понятия не имеем, что она на самом деле делает.