|
Subject: [xsl] Accumulator use From: "mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 29 Feb 2016 11:57:00 -0000 |
(Sorry for bad formatting, regular email client not working)
I try to
cache values who are in external files referenced from my source
file :source.xml
------------
<root><input href="1.xml"/><input
href="2.xml"/>...</root>
n.xml
------
<root
type="typeN">...</root>
I want to
create a map(xs:anyUri, xs:string), where key is the external
file URI, and value is always /*/@type in the fileExternal files
may be huge, and I'd like to stream them. I create an
accumulator, stream input files using this accumulator.<xsl:accumulator name="acc"
as="map(xs:string, xs:string)"
initial-value="map{}">
<xsl:accumulator-rule
match="*[@value]">
<xsl:sequence
select="map:put($value, ./local-name(),
xs:string(./@value))"/>
</xsl:accumulator-rule>
</xsl:accumulator>
I don't see what this accumulator is
matching - there are no @value attributes in your input.
<xsl:mode name="m"
streamable="yes"/><xsl:template
match="/">
What is "/" here? What's the input file?
<xsl:stream
href="../../test/resources/entries.xml"
use-accumulators="acc">
What is entries.xml here? Is it the same as source.xml?
<xsl:apply-templates mode="m"/>
</xsl:stream>
<!-- do here something that uses the accumulator
-->
</xsl:template>How can I access to the accumulator after
stream processing ? I'd like to write the map content
to the output. Is it possible ?
If the only thing you need to do is
to create this map, then you don't need accumulators:
<xsl:map>
<xsl:for-each
select="doc('source.xml')/root/input">
<xsl:map-entry key="@href">
<xsl:stream href="{@href}">
<xsl:value-of
select="/*/@type"/>
</xsl:stream>
</xsl:map-entry>
</xsl:for-each>
</xsl:map>
If you want to do other processing on the n.xml file then I would
need to see what that processing is, but it's going to be a bit
tricky because accumulators only really work within the context of a
single document.
Michael Kay
Saxonica
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Accumulator use, Martin Honnen martin | Thread | |
| Re: [xsl] Accumulator use, Martin Honnen martin | Date | |
| Month |