проблемы с xmlpoke в скрипте nant при чтении точки с запятой в строке - PullRequest
2 голосов
/ 16 сентября 2010

У меня есть скрипт nant, который пытается изменить значение URL в моем файле web.config, но Nant продолжает выдавать эту ошибку:

'=' is an unexpected token. The expected token is ';'. Line 1, position 80.

Я проследил его до точки с запятой в URL-адресе nantскрипт.Во-первых, у меня точка с запятой в URL, потому что web.config не любит амперсанды (&).Поэтому мне пришлось заменить & на &.Вот мое значение web.config:

<appSettings>
    <add key="myUrl" value="http://www.google.com/whatever?id=myId&amp;fullScreen=1"/>
</appSettings>

Я могу xmlpoke всех остальных «ключей добавления» в web.config, но этот, так что это не проблема xpath.Вот скрипт nant:

<property name="myUrl" value="http://www.google.com/whatever?id=123456&amp;fullScreen=2"/>

<xmlpoke 
   file="${config.file}"
   xpath="/configuration/appSettings/add[@key = 'myUrl']/@value"
   value="${myUrl}">    
</xmlpoke>

Так что проблема не в точке с запятой в web.config, а в точке с запятой в скрипте nant.Я думаю, мне нужно как-то избежать точки с запятой в сценарии nant.Кто-нибудь знает, как это сделать или что-то еще, чтобы заставить его работать?

1 Ответ

5 голосов
/ 17 сентября 2010

Прошло 16 часов и никого не пискнул. К счастью для меня, я нашел решение после нескольких часов поиска в Google.

Решение заключается в использовании &amp;amp;. Я понятия не имею, почему дополнительные amp;, но это сработало. Так что теперь мой скрипт nant выглядит так:

<property name="myUrl" value="http://www.google.com/whatever?id=123456&amp;amp;fullScreen=2"/>

Автор кредита Гэри из списка рассылки nant-пользователей , на который я только что подписался:)

...