如何使用 shell 脚本更改 xml 中的标签

How to change tag in xml with shell script

<?xml version="1.0" encoding="utf-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0" id="in.rakshanshetty.ionic" version="bar">
  <name>ionic test</name>
  <description>An awesome my app</description>
  <author email="hi@ionicframework" href="http://ionicframework.com/">Ionic Framework Team</author>

</widget>

如何使用 xmlstarlet 更改作者电子邮件、href 和其中的内容

使用 xmlstarlet:

xmlstarlet edit -N x='http://www.w3.org/ns/widgets' \
                --update "//x:widget/x:author/@email" --value "foo@example.com" \
                --update "//x:widget/x:author/@href"  --value "http://www.example.com" \
                --update "//x:widget/x:author"        --value "foo" file.xml

输出:

<?xml version="1.0" encoding="utf-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0" id="in.rakshanshetty.ionic" version="bar">
  <name>ionic test</name>
  <description>An awesome my app</description>
  <author email="foo@example.com" href="http://www.example.com">foo</author>
</widget>

如果要就地编辑文件,请添加选项 -L。