首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当存在xmlns属性时,如何使用XmlStarlet修改XML文件

当存在xmlns属性时,如何使用XmlStarlet修改XML文件
EN

Stack Overflow用户
提问于 2022-06-07 14:08:13
回答 1查看 67关注 0票数 0

我试图修改下面的XML文件;

代码语言:javascript
复制
<widget id="" android-version="" ios-version="" version="" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:tools="http://schemas.android.com/tools">
...
</widget>

特别是试图修改idandroid-versionios-versionversion属性的值。

我使用以下CMD来修改id的空字符串值,例如,使用$1从命令行向它传递一个值;

代码语言:javascript
复制
xmlstarlet edit --inplace \
--update "//widget/@id" \
--value $1 config.xml

当我移除4个xmlns属性时,这是很好的。我尝试用-N将它们指定为命名空间,但仍然无法修改。我希望能够在不删除xmlns属性的情况下修改上述值。

我在这里错过了什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-07 14:45:42

在指定名称空间时,我似乎犯了错误。采用以下格式作品;

代码语言:javascript
复制
xmlstarlet edit --inplace -N a="http://www.w3.org/ns/widgets" \
--update "//a:widget/@id" \
--value $1 config.xml

注意:我使用--inplace在不附加文件的情况下修改文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72532674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档