xmlstarletを使用したXML値の更新

xmlstarletを使用したXML値の更新

config.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>

要素の値を変更したい。

私は以下を試しました:

xmlstarlet edit -L -u "/_:widget/name" -v "NEW_NAME" config.xml

そして

xmlstarlet edit -L -u "//name" -v "NEW_NAME" config.xml

ただし、「アプリケーションタイトル」の値は変更されていません。

ベストアンサー1

要素が名前空間にnameあるため、名前空間を指定する必要があります。http://www.w3.org/ns/widgets

xmlstarlet edit -L -N w=http://www.w3.org/ns/widgets -u "//w:name" -v "NEW_NAME" config.xml

おすすめ記事