У меня есть 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, чтобы оно выглядело так:
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 здесь?
Invalid expression: x:widget@id
В XPath имена атрибутов, обозначенные @, должны отделяться косой чертой / от элемента.
@
/
Поэтому вместо
--update "x:widget@id"
используйте
--update "x:widget/@id"