Я пытаюсь вставить директиву ServerName после соответствующего комментария в httpd.conf:
#ServerName www.example.com:80
Это не удается:
defvar sncomment /files/etc/httpd/conf/httpd.conf/#comment[.= 'ServerName www.example.com:80']
ins directive after $sncomment
defvar snentry /files/etc/httpd/conf/httpd.conf/directive[preceding-sibling::*[1][$sncomment]]
set $snentry 'ServerName'
set $snentry/arg 'www.domain:80'
$ sncomment соответствует правильной строке, а пустая директива вставляется в правильную точку в дереве, но $ snentry соответствует каждой директиве в дереве, а не только вставленной. Как я могу сопоставить только вставленную директиву?
Спасибо
Есть более простой способ сопоставить только что вставленную директиву:
defvar snentry /files/etc/httpd/conf/httpd.conf/directive[. = '']
Это будет работать, пока в дереве нет других пустых директив. Тем не менее, я все же хотел бы исправить синтаксис предыдущего брата, если кто-то может обнаружить ошибку в моем коде.