Hello Rob,
no, this not a bug. replace() uses regex for its pattern and as the path has {} and [] in them they will be interpreted as regex. You could write your own replace function or something trivial (but quite limited) like using substring and string-length, e.g.:
substring(path($b), string-length(path($a)) + 1)
Cheers, Dirk
On 15/08/14 11:55, Rob Stapper wrote:
Hi,
How can I construct the relative path between two elements in an xml-file.
Most probably overlooking the obvious I ended up with the solution below, which, unfortunately, triggers an runtime-error.
My not-working solution:
let $xml :=
<xml>
<A> <B/> </A>
</xml>
let $b := $xml//B
let $a := $xml//A
return replace( string( path( $b))
, string( path( $a)) , '' )
Two questions:
How to retrieve the relative path between two element within a
xml-file?
Why does the solution above trigger an error? Can it be a bug? (
oops, three questions)
Thnx in advance for the reply,
Rob Stapper
Dit e-mailbericht bevat geen virussen en malware omdat avast! Antivirus-bescherming actief is. http://www.avast.com