Subject: Re: [xsl] Brackets in XPATHS From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Thu, 14 Feb 2002 08:46:17 +0000 |
Chris Maden wrote: >>You can start with a node-set and refine it, but you can't reference a >>node-set (the union of xpath2 and xpath3) as if it were the child of another >>node-set (xpath1). >> >>(/xpath1/xpath2|/xpath1/xpath3)/xpath4 should work for you. > > That's not legal. A UnionExpr (with the '|' operator) can't be part > of a Step like that; parentheses, in general, are not allowed in > Steps. Actually, it is legal. The () around the unioned paths indicate that the start of the location path is an expression. The relevant productions from the XPath Rec are: [19] PathExpr ::= LocationPath | FilterExpr | FilterExpr '/' RelativeLocationPath | FilterExpr '//' RelativeLocationPath [20] FilterExpr ::= PrimaryExpr | FilterExpr Predicate [15] PrimaryExpr ::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall Here we have a path expression that is a filter expression followed by a '/' followed by a relative location path. The filter expression is a primary expression consisting of '(', an expression, and ')'. The expression is itself a path expression that is a location path. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Brackets in XPATHS, Christopher R. Maden | Thread | RE: [xsl] Brackets in XPATHS, Edward . Middleton |
Re: [xsl] How to get the preceding-, Joerg Pietschmann | Date | Re: [xsl] Brackets in XPATHS, Jeni Tennison |
Month |