2010-12-10 79 views
2

xsl:apply-templates select=".[nodeTest]" mode="somemode"失敗,出現could not compile select expression。[nodeTest]表達式不起作用

我重新閱讀了規範中的「縮寫語法」一章,但仍不明白它是一個實現錯誤還是適當的行爲。

self::node[nodeTest]當然效果很好。

是不是指定縮短的自我軸不應該與謂詞一起工作?

+0

好問題,+1。查看我的答案以獲得完整的解釋。 – 2010-12-10 14:28:10

回答

2

是它在某種程度上指定縮短 自軸不應與 謂語工作?

是的,這是由grammar rules of XPath確定:

[20] FilterExpr ::= PrimaryExpr 
          | FilterExpr Predicate 


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

如可以從這些中可以看出,PrimaryExpr不能.

該句法省略在XPath 2.0中進行了更正,其中表達式.[someCondition]完全合法。

+0

忽略我以前的評論。它在您編輯之前發佈。感謝你的回答。 – Flack 2010-12-10 14:32:25

+2

+1好答案。但是,對於縮寫的目的,它可能是'(。)[$ predicate]' – 2010-12-10 14:44:36

+0

@Alejandro,當然。 – 2010-12-10 15:33:27