我试图在httpd.conf中相应的注释之后插入一个ServerName指令:
#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[. = '']
只要树中没有其他空白指令,就可以工作。 但是,如果任何人都可以在我的代码中发现错误,我仍然想要得到前面的兄弟语法。