XMLStarlet редактирования:Почему XMLStarlet заменяет '>' на '>' в строке?
xmlstarlet ed -O -u "/include/X-PRE-PROCESS[@cmd='set' and starts-with(@data,'domain=')]/@data" -v 'domain=test.domain' vars.xml
на целевой файл:
<include>
<X-PRE-PROCESS cmd="set" data="domain=domain.com"/>
<X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/>
</include>
изменяет необходимое data="domain=domain.com"
значения,
, но и возвращает неожиданным (для меня) изменения >
к >
в строке стоимость bong-ring=...
so >=2
становится >=2
<include>
<X-PRE-PROCESS cmd="set" data="domain=test.domain"/>
<X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/>
</include>
не ">"
защищено кавычками ""
?
Так что вопрос:
Есть ли ошибка в XMLStarlet или это ошибка в прикладную (Freeswitch v1.7), который использует vars.xml и разбирает <X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/>
в v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)
@kjhughes Re: [ваше править] (http://stackoverflow.com/posts/33236700/revisions#rev-arrow-ccf030a2-0b60-45ba-a1c5-de97f10a9a48): Строго говоря, нет такой вещи, как несогласованный синтаксический анализатор, так же, как нет такой вещи, как «почти XML». Это XML, или нет. И это парсер XML - или нет. :) – Tomalak
Нет таких вещей: «почти XML». Согласовано.Однако «несоответствующие * парсеры *» могут существовать (и делать это во время разработки и, к сожалению, за его пределами). Теперь о тех ангелах, танцующих на голове булавки ... :) – kjhughes
Почти-парсер может разбирать почти-XML. Это все в порядке, но тогда мы говорим не о XML, а о синтаксисе XML. Да, я знаю это. По этой причине я оставил редактирование. :) – Tomalak