Измените XML с помощью xmlstarlet в зависимости от другого элемента

я буду плакать.... я прочитал 2 сообщения, это не сработает для меня.... я тестировал полдня.... мой xml выглядит так:

<ConfigData xmlns="http://xml.avaya.com/endpointAPI">
<version>1</version>
<parameter>
<name>EnablePresence</name>
<value>1</value>
</parameter>
<parameter>
<name>CurrentSkin</name>
<value>1</value>
</parameter>
<parameter>
<name>DialPlanNationalPhoneNumbLengthList</name>
<value>6</value>
</parameter>
</ConfigData>

xmlstarlet должен изменить значение на (заменив старый файл...)

<ConfigData xmlns="http://xml.avaya.com/endpointAPI">
<version>1</version>
<parameter>
<name>EnablePresence</name>
<value>1</value>
</parameter>
<parameter>
<name>CurrentSkin</name>
<value>1</value>
</parameter>
<parameter>
<name>DialPlanNationalPhoneNumbLengthList</name>
<value>7</value>
</parameter>
</ConfigData>

моя последняя попытка была:

xml edit --inplace --update '//parameter[name="DialPlanNationalPhoneNumbLengthList"]/value' -v 7 config.xml

Кто-нибудь может мне с этим помочь?


person user3733675    schedule 12.06.2014    source источник
comment
Если у вас есть решение, опубликуйте его как ответ и примите (см. stackoverflow.com/help/self-answer) .   -  person npostavs    schedule 13.06.2014


Ответы (1)


Я решил это.... xml edit -L -N x="xml.avaya.com/endpointAPI"; -u "/x:ConfigData/x:parameter[x:name='DialPlanNationalPhoneNumbLengthList']/x:value‌​" -v 7 config.xml Следующим шагом является редактирование нескольких значений...... идеи?

Еще одна проблема: можно ли решить проблему с пространством имен с помощью заполнителя для всех пространств имен?

person user3733675    schedule 16.06.2014