проблемы с xmlpoke в нант скрипте при чтении точки с запятой в строке

У меня есть сценарий 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. Кто-нибудь знает, как сделать это или что-то еще, чтобы заставить его работать?


person goku_da_master    schedule 16.09.2010    source источник


Ответы (1)


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

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

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

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

person goku_da_master    schedule 17.09.2010