. [nodeTest] выражение не работает - PullRequest
2 голосов
/ 10 декабря 2010

xsl:apply-templates select=".[nodeTest]" mode="somemode" не удается с could not compile select expression.

Я перечитал главу «Сокращенный синтаксис» в спецификации и до сих пор не понимаю, является ли это ошибкой реализации или соответствующим поведением.

self::node[nodeTest] конечно, хорошо работает.

Как-то указано, что укороченная ось не должна работать с предикатом?

1 Ответ

2 голосов
/ 10 декабря 2010

Как-то указано, что укороченная ось не должна работать с предикатом?

Да, это определяется грамматическими правилами XPath :

[20]    FilterExpr    ::=    PrimaryExpr  
                            |  FilterExpr Predicate 


[15]    PrimaryExpr    ::=    VariableReference  
                              | '(' Expr ')'  
                              | Literal  
                              | Number  
                              | FunctionCall 

Как видно из этого, PrimaryExpr не может быть ..

Это синтаксическое упущение было исправлено в XPath 2.0 ,где выражение .[someCondition] совершенно законно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...