|
Subject: [xsl] Saxon-CE -- Passing Data to a JS Function From: "Chris Despopoulos despopoulos_chriss@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 7 Jul 2016 12:28:07 -0000 |
First, apologies for my status as an XSLT user.B I know enough to be
dangerous, but not enough to understand how or why!B I'm working on it (Yes,
I have the big book by Dr. Kay).
I'm trying to use Saxon-CE for DITA to HTML transforms in the browser (instead
of the browser's XSLT engine).B I definitely need to pass JSON data to JS
functions.B I would like to pass generated HTML to JS functions as well, but
I might be able to make the result-document mechanism work for my existing
app.B (Looking into that -- Heck, it might beB superior to passing HTML as a
string.B What's important is being able to inject data from the product API
as I generate the result.B I'm guessing Saxon-CE can do that.)
Anyway, I originally had problems passing data to JS, but I've got the JSON
part working.B The trick is getting a string into a variable -- Then I can
pass that easily enough.B (Thanks for the help so far!!!)
For example, for this XML:
<items><item>arf</item><item>woof</item><item>bark</item></items>
I can get this string into an alert...{foo : arf, bar : content:"
B B B
<p>arf</p>
B B B
<p>woof</p>
B B B
<p>bark</p>
B B B "}
Sure would like to get rid of the extra line returns, but that's lower
priority.B Declaring the variable as a string and copying the results into
the variable seems to do the trick.B A question is...B How would I generate
HTML and copy THAT into a variable that I can pass to JS?B I suspect that JS
is ignorant of XSLT tree objects...
<advance>Thanks</advance>B (Thanks in advance for any help)
Here's the XSLT that I use to make the JSON string.B Is this more or less the
transform structure you would use -- Global variable populated by named
template (or maybe templates of a mode???), call the function for the doc
node, and match the input XML structure in all the other templates?
<xsl:variable name="myTree" as="xs:string"><xsl:call-template
name="TRY_THIS"/></xsl:variable>
<xsl:template match="/"><xsl:call-template name="callFunc" /></xsl:template>
<xsl:template match="items/item"><p><xsl:value-of
select="normalize-space(.)"/></p></xsl:template>
<xsl:template name="TRY_THIS">
<xsl:copy>{foo : arf, bar : content:" <xsl:apply-templates/>B B B
"}</xsl:copy>
</xsl:template>
<xsl:template name="callFunc"><xsl:value-of
select="js:myFunc($myTree)"/></xsl:template>
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] How to copy attribute val, Martin Honnen martin | Thread | Re: [xsl] How to copy attribute val, Kenneth Reid Beesley |
| Re: [xsl] How to copy attribute val, Martin Honnen martin | Date | Re: [xsl] How to copy attribute val, Kenneth Reid Beesley |
| Month |