Альтернатива синтаксису «заканчивается» в xsl - PullRequest
0 голосов
/ 05 ноября 2018

Ссылка из этого источника

Использование заканчивается в XSLT v1.0

Окончание не применимо в XPATH 1.0, но мне нужна его функция для работы над моим приложением.

Это фрагмент кода, в котором мне нужно соответствовать конкретной точной строке

<xsl:template match="p:Project/p:ItemGroup/p:Reference[starts-with(@Include, 'Common')]/@Include">

В этой строке я попытался изменить его, чтобы получить желаемый результат, согласно исключению «синтаксис« не заканчивается »не является частью XPATH 1.0»

 <xsl:template match="p:Project/p:ItemGroup/p:Reference[starts-with(@Include, 'Common') and ends-with(@Include, 'Common') ]/@Include">

Есть ли альтернатива для этого?

Мне нужно сделать это, потому что в xml-файле есть части, которые нужно изменить, в начале которых есть строка «Common», например Common.UI, Common.Windows.Grid, поэтому при запуске это также влияет на эти строки.

Должен быть изменен только один с «Common»

1 Ответ

0 голосов
/ 05 ноября 2018

Формула уже указана в указанной вами ссылке. Поскольку вам лень анализировать, проверьте следующее:

<xsl:template match="p:Project/p:ItemGroup/p:Reference[starts-with(@Include, 'Common') and 'Common' = substring(@Include, string-length() - 5)]/@Include">
...