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