XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Eugene KirinSubject: Dynamical xpath
Author: Eugene Kirin
Date: 25 Aug 2005 12:29 PM
Hi!
I'm wonder, can I form dynamical xpath in xquery? I mean:

xml example:
------------
<book>
<first-chapter>first chapter example</first-chapter>
<second-chapter>second chapter example</second-chapter>
</book>
------------
xquery: (don't work)
------------
declare function selectChapter($var as xs:string) as node()* {
/book/$var (:Dynamical xpath:)
};

let $chapterType := ("first-chapter", "second-chapter")
return for $type in $chapterType
return selectChapter($type)

I know this script doesn't work, but maybe I need change it. Do you know how?

Thanks for your suggests!

Postnext
Doug HoopleSubject: Dynamical xpath
Author: Doug Hoople
Date: 26 Aug 2005 11:28 AM
Eugene,

Depending on your parser, you can use the evaluate() extension function.

Assuming the Saxon 8.4 parser, try:

declare function local:selectChapter($var as xs:string) as node()* {
let $exprString := string-join( ("/book/", $var), "" )
return saxon:evaluate($exprString)
};

Of course, you'll have to also set your context properly to make this work, but this at least answers your dynamic expression formation question.

Doug Hoople

Posttop
Alberto MassariSubject: Dynamical xpath
Author: Alberto Massari
Date: 30 Aug 2005 08:36 AM
Hi Eugene,
you can try with this code:

declare function selectChapter($var as xs:string) as node()* {
/book/*[local-name() = $var] (:Dynamical xpath:)
};

Hope thie helps,
Alberto

 
Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.