> Хотелась бы найти утилиту-фреймворк, чтоб не только читать XML, а и без
> проблем писать(изменять) значения. Тот же xmlstarlet не понимает несколько значений (record): эээ, "маладой челове-е-ек!", не пытайтесь нас обмануть!
ничего искать не надо, всё уже изобретено, прекрасно понимает и работает
садимся на велик и поехали?
да, едем!
(лирическое отступление)
подозреваю, что у ТС ОС BSD и, каюсь, у меня не было xmlstarlet (xml), пришлось установить
короче, я сделал за тебя домашку
hint:
чтобы менять нужно указывать что хотм менять, программа не телепат
так работает
xml ed -u '/zonelist/domain[@name="domain01.com"]/record[@type="A" and @value="123.255.255.123" and @ttl="600"]/@value' -v 0 xml-config.xml
и так тоже работает
xml ed -u '//domain[@name="domain01.com"]/record[@type="A" and @value="123.255.255.123"]/@value' -v 0 xml-config.xml
а так нет
xml ed -u '//domain[@name="domain01.com"]/record[@type="A" and @value="123.255.255.123"]/' -v 0 xml-config.xml
а так и вовсе неправильно
xml ed -u '//domain[@name="domain01.com"]/record[@type="A" and @value="123.255.255.123"]' -v 0 xml-config.xml
подставляет в конце "0</record>" - то что и вовсе не требуется
ну и с заменой в субдомене аналогично
рабочие примеры
xml ed -u '/zonelist/domain[@name="domain01.com"]/record[@type="A" and @value="123.255.255.255"]/@value' -v 0 xml-config.xml
xml ed -u '//domain[@name="domain01.com"]/record[@type="A" and @value="123.255.255.255"]/@value' -v 0 xml-config.xml
дарю
http://xmlstar.sourceforge.net/doc/UG/ch04s03.html
такие дела..