XPath сравнивает одно утверждение с несколькими утверждениями - PullRequest
1 голос
/ 25 марта 2012

У меня есть этот xpath:

//a[ substring-after( substring-before( @href , '.deviantart.com' ) , 'http://' ) != 'about' and substring-after( substring-before( @href , '.deviantart.com' ) , 'http://' ) != 'browse' and substring-after( substring-before( @href , '.deviantart.com' ) , 'http://' ) != 'chat' ]

и я хочу иметь возможность сделать что-то вроде этого:

//a[ substring-after( substring-before( @href , '.deviantart.com' ) , 'http://' ) != [ 'about' , 'browse' , 'chat' ] ]

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 25 марта 2012

В xpath2 вы можете перейти

//a[not( substring-after( substring-before( @href , '.deviantart.com' ) , 'http://' ) 
     = ('about' , 'browse' , 'chat' )) ]

в чистом xpath1 вы более ограничены, хотя, если вы используете xslt или какой-то другой контекст, в котором вы можете определять переменные xpath, вы, вероятно, можете сделать его немного лучше.

...