1

当我向我的 git 存储库添加新版本时,我正在尝试更改我的 ionic 应用程序版本。为了实现这一点,我执行xmlstarlet ed -L -u 'widget\@version' -v '<tag value>' config.xml了但输出没有任何改变。我已经尝试过 xpath 表达式,它找到了节点。这是“config.xml”文件:

<?xml version="1.0"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0" id="io.ionic.my_app" version="1.0.3">
...
</widget>

如果我删除属性xmlns并且xmlns:cdv它可以工作,为什么这些属性会影响xmlstarlet工作方式以及如何解决这个问题?

4

1 回答 1

3

好吧,这个问题的发生是因为命名空间的使用,可以通过添加命名空间属性来修复xmlstarletusing -N 命令会像这样xmlstarlet ed -L -N N='http://www.w3.org/ns/widgets' -u 'N:widget/@version' -v '1.0.10' config.xml ,你可以看到我们将 N: 添加到 xpath

于 2020-07-14T09:54:29.777 回答