我有一个以
开头的xml文件<?xml version='1.0' encoding='utf-8'?>
<widget
id="io.ionic.starter"
version="0.0.1"
xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0"
>
我需要更改id
属性的值,使它看起来像这样:
<?xml version='1.0' encoding='utf-8'?>
<widget
id="sdf"
version="0.0.1"
xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0"
>
我已尝试使用xmlstarlet:
xmlstarlet edit \
--inplace \
-O \
-N \
x=http://www.w3.org/ns/widgets \
--update "x:widget@id" \
--value "sdf" \
config.xml
但我得到Invalid expression: x:widget@id
。这里正确的xmlstarlet命令是什么?
答案 0 :(得分:1)
在XPath中,用@
表示的属性名称必须用元素中的斜杠/
分隔。
所以而不是
--update "x:widget@id"
使用
--update "x:widget/@id"