The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Чтение и редактирование XML файла"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "Чтение и редактирование XML файла" +/
Сообщение от universite (ok), 12-Янв-19, 19:18 
> xmllint --xpath '/zonelist/domain[@name="domain02.net"]/record[@type="A" and @ttl="600"]'
> xml-config.xml

Это работает.

> P.S. так а чем sed не устраивает?

Хотелась бы найти утилиту-фреймворк, чтоб не только читать XML, а и без проблем писать(изменять) значения. Тот же xmlstarlet не понимает несколько значений (record):


# xml ed -u '//domain[@name="domain01.com"]/record[@type="A" and @value="123.255.255.123"]' -v 0 xml-config.xml
...
    <record type="A" value="123.255.255.123" ttl="600">0</record>
...


> grep subdomain01 xml-config.xml | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/1.1.1.1/'


sed -n '/<domain name="domain01.com"/,/<\/domain/p' xml-config.xml | sed '/domain="subdomain01"/s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/1.1.1.1/'

А вот тут нюанс, если поддомен subdomain01 будет у нескольких доменов, то получу несколько (чужих) IP.
Поэтому, надо через xmllint  сузить область обработки до нужного домена, а потом изменять через sed...
Еще когда поддомен будет не subdomain01, а 2.2.2.2 (общий вид 2.2.2.2.domain01.com), тогда sed сделает замену только один раз и не в том месте...

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Чтение и редактирование XML файла, universite, 12-Янв-19, 13:09  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру