xml - 使用 Shell 更新 XML 属性的值

标签 xml shell awk sed xml-parsing

我有 config.xml,里面有以下行。

<widget id="dev.apk" version="2.5-dev" android-versionCode="20500-dev">

我想更改 Bash 脚本中属性“version”、“id”和“android-versionCode”的值。

在脚本中,我可以访问 ID、VERSION 和 VERSION_CODE 变量,如下所示:

ID ="release.apk"
VERSION="2.5"
VERSION_CODE="20500"

我想使用 xmlstarlet 或 sed。 最好的方法是什么?

更新

我的 .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="app" version="2.5" android-versionCode="20500"> 
<name>App title</name> 
<description>Dummy dummy text.</description> 
</widget>

最佳答案

您可以执行此操作来就地编辑 xml 文件:

id 属性示例:

xmlstarlet edit -L -u "/_:widget/@id" -v "$ID" file.xml

您现在只需将此代码段改编为其他代码段即可。

注意

关于xml - 使用 Shell 更新 XML 属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26762010/

相关文章:

javascript - 在 HTML 中的特定表格单元格中显示消息对话框

XML 计数 TXT

c# - 在 C# 中,将字符串格式化为 XML 的最佳方法是什么?

linux - grep 命令没有按我的预期工作

shell - 如何在unix中计算这个差异

linux - Linux中模式匹配后提取内容

json - 在 Data::Dumper 中是否有等效于 Perls 的 Dumper() 方法的 Go 语言?

linux - 打包多个tar文件的Shell脚本(取决于日期)

linux - 如何提取字符串开头的一部分?

python - 如何从 Unicode 文件中删除字母数字单词