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=...
所以>=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回复:[你的编辑](http://stackoverflow.com/posts/33236700/revisions#rev-arrow-ccf030a2-0b60-45ba-a1c5-de97f10a9a48):严格地说,没有这样的事情一个不符合的解析器,就像没有“几乎XML”那样的东西。它是XML,或者不是。它是一个XML解析器 - 或者不是。 :) – Tomalak
没有这样的事情:“差不多XML”。同意。但是,“不符合*解析器*”可能存在(并且在开发过程中以及在不幸的情况下)。现在,关于那些在针头上跳舞的天使...... :) – kjhughes
几乎可以解析几乎XML的解析器。这是完全正确的,但是我们不是在谈论XML而是在谈论XML解析器。是的,这是头发分裂,我知道。出于这个原因,我离开了编辑。 :) – Tomalak