如果属性不存在,我想编写一个厨师食谱以将属性添加到我的XML属性中,如果该属性存在,则要设置该值。
xml_file :
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="false" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
如果SSLEnabled密钥不存在,我想为每个连接器标签添加一个新属性SSLEnabled="true"
。如果该属性已经存在,则将其值更新为“ true”。
我可以考虑使用shell命令(最好是grep / sed / awk)吗?
如果不是,哪种资源适合该用例?
PS :我的Connector XML标记可以跨多行或单行。
答案 0 :(得分:1)
xmlstarlet ed --insert '//Connector[not(@SSLEnabled)]' \
--type attr --name 'SSLEnabled' --value "true" \
file.xml
要将输出保存到同一文件中,请在--inplace
子命令之后添加ed
选项。