Re: Brackets in XPATHS
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:  PathExpr ::= LocationPath | FilterExpr | FilterExpr '/' RelativeLocationPath | FilterExpr '//' RelativeLocationPath  FilterExpr ::= PrimaryExpr | FilterExpr Predicate  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
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format