Subject: Re: [xsl] Json to xml From: "Michael Kay michaelkay90@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 14 Mar 2025 17:26:57 -0000 |
A global variable is always evaluated with the principal source document as the context item. If you're running with multiple documents, e.g. a multi-phase transformation, then it's best to avoid relying on this and instead always use global variables to refer to each document explicitly. Michael Kay Saxonica > On 14 Mar 2025, at 17:20, dvint@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > In trying to build a small sample I have found where the problem is coming from. It looks like this might be a timing issue of when the stylesheet is read vs when the json-to-sml() file is triggered and that XML becomes available to evaluate. > > At the top of the included XSLT is this > > <!-- Remeber thsi content to lookup details later --> > <xsl:variable name="PROPERTIES" select="/j:map/j:map[@key='properties']"/> > > I use this value to lookup details that are linked to much further down and deeply nested. This works prefectly when using this XSLT standalone with the generated XML file. > > I'm guessing what happens when it is included in the main XSLT, that this variable is being set based upon the JSON file that the main XSLT is called with. > > In the main XSLT, I moved this declaration out of the template so the variable is global: > > <xsl:variable name="MAPFILE" select="json-to-xml(., map { 'escape' : true() })"/> > > I then modified the PROPERTIES variable to use $MAPFILE and it now works. > > <!-- Remeber thsi content to lookup details later --> > <xsl:variable name="PROPERTIES" select="$MAPFILE/j:map/j:map[@key='properties']"/> > > BUT it is now no longer possible to run the second stylesheet standalone. > > So, I've found the problem and need to find a better way to capture this information. > > ..dan > > > On 2025-03-13 23:55, Martin Honnen martin.honnen@xxxxxx wrote: >> On 13/03/2025 19:25, dvint@xxxxxxxxx wrote: >>> I'll try and see if I can make a small sample JSON and associated >>> included XSLT. >> Please do that, I couldn't see any obviuous mistakes in the code you posted.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Json to xml, dvint@xxxxxxxxx | Thread | Re: [xsl] Json to xml, dvint dvint@xxxxxxxx |
Re: [xsl] Json to xml, dvint@xxxxxxxxx | Date | Re: [xsl] Help, my problem is n-cub, Dimitre Novatchev dn |
Month |