Revision [1070]
This is an old revision of CommandXquery made by DavidLee on 2009-11-29 10:33:48.
Command xquery
Name
xquery evaluate an XQUERY expression and print the resultSynopsis
xquery [ serialization options ] [options] [-v var value [var value]]Description
Evaluates an XQuery expression
Options
-f xquery-file -file xquery-file | read xquery script from file |
-i context -input context | use context as the source xml document, otherwise stdin if context is an XML expression which is an item then use it directly as the context item. |
-c context -context context | Use context as a literal context |
-cf file -context-file file | Use file as the name of an XML file for the context, or "-" for stdin |
-q query | use argument as xquery-expr |
-n | do not use a source context |
-v | if -v is given then the remaining args are treated as name/value pairs and assigned to xquery external variables |
-nons | Do not import global namespace declarations from the shell environment |
-ns prefix=uri | Add a predeclared namespace declaration |
-s -string | convert every node value in the result to a string |
xquery-expr xquery expression
Supports the standard [ serialization options ]
If no -q or -f is given then the next argument is treated as the xquery expression/script.
-i is depreciated. It is a convenience option that does the following
- If context is an atomic value then treat as a filename to be loaded as the context item
- Otherwise treat as the literal context for the context item
-c or -cf are suggested which explicitly indicate if to use the expression literally or as a filename
Not all options are compatible. You cannot read both the query and the context from stdin.
If you supply variables then -q must be supplied.
If the result (or any node of the result if a sequence) is an Attribute, or if the -s option is specified the it is converted to a string.
Example
xls | xquery '//file[1]/@name/string()'
Result
.classpath
Simplified example, you dont need string()
xls | xquery '//file[1]/@name'
Result
.classpath
Example
xquery -i <[<foo/>] .
Result
<foo/>
Namespace example using a renamed prefix for a namespace
echo "<x:a xmlns:x='foo' />" | xquery -nons -ns y=foo /y:a
Result
<x:a xmlns:x="foo"/>
Return Value
Returns 0 if the the xquery expression executed successfully. otherwise 1Commands
CategoryCommands