|
Subject: Re: [xsl] Muenchian work if more than one value is present From: "Liam R. E. Quin liam@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 20 Mar 2015 19:13:45 -0000 |
On Fri, 2015-03-20 at 12:56 +0000, Russell Urquhart russurquhart1@xxxxxxxxxxx wrote:
> As for moving towards XSLT 2.0, i have been wanting to get there but
> feel i first have to fully understand XSLT 1.0 first! But i'm
> getting there!
"I can't move to these new-fangled automobiles until I understand how
to make my own cartwheel with a spokeshave!" :-)
Seriously, I'd say, build some tests and try moving as soon as you can.
Liam
>
> Thanks to everyone here for your time and patience!
>
>
> Russ
>
>
>
> On Thu, Mar 19, 2015 at 07:34:23PM +0000, Wendell Piez
> wapiez@xxxxxxxxxxxxxxxxxxxx:
> > Russ,
> >
> > Yeah -- the for-each pulls all the errata_section elements that
> > happen to be the first one of the entire set with the same value
> > for module_impacted -- except that since you've added
> > module_impact siblings, it will be those that are the first one of
> > the set of all errata_section with *any* of the same
> > module_impacted values. The key can work many-to-one, and it does.
> > This means in principle a module_impacted can be dropped (if it
> > never appears outside parents that are also bound to other modules
> > mentioned earlier).
> >
> > To use Muenchian grouping, write your key to the module_impacted
> > elements themselves (by their values), not their parents. Then
> >
> > for-each select="//module_impacted[generate-id() =
> > generate-id(key('module_impact_mentions',string(.))[1])]">
> >
> > to iterate over these values (or rather, over a set of node
> > proxies for them).
> >
> > Or ditch the Muenchian grouping and join the modern world - XSLT
> > 2.0.
> >
> > Cheers, Wendell
> >
> >
> > On Wed, Mar 18, 2015 at 12:45 PM, russurquhart1@xxxxxxxxxxx<
> > xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> > >
> > > Hi All,
> > >
> > > I have a question about using Muenchian Method in a specific
> > > situation.
> > >
> > > I have an xml source file like the following:
> > >
> > > <errata_section id="i875"
> > > errata_type="bug"><title>Title</title><description> <para>
> > > Following a warm Reset </para></description><devices_impacted>
> > > <device_name>VAZER</device_name></devices_impacted><module_impacted>Boot</module_impacted></errata_section>
> > >
> > >
> > > The existing xsl, that i am supporting, but didn't write, uses
> > > the following key:
> > >
> > > <xsl:key name="module-index" match="errata_section"
> > > use="module_impacted"/>
> > >
> > > And they have used the following Muenchian Method algorithm to
> > > go through all the unique module_impacted elements.
> > >
> > >
> > > <xsl:for-each select="//errata_section[generate-id(.)=generate-
> > > id(key('module-index', module_impacted)[1])]"> <xsl:sort
> > > select="module_impacted"/>
> > > <!-- Determine module_impacted elements, for given device_name,
> > > and output table. -->
> > >
> > > </xsl:for-each>
> > >
> > > Everything went fine until, over time, we have added additional
> > > module_impacted siblings to the errata_section element like this:
> > >
> > > <errata_section id="i876"
> > > errata_type="bug"><title>Title</title><description> <para>
> > > Following a warm Reset </para></description><devices_impacted>
> > > <device_name>VAZER</device_name></devices_impacted><module_impacted>Boot</module_impacted><module_impacted>Power-
> > > On</module_impacted><module_impacted>DMA</module_impacted></errata_section>
> > >
> > >
> > > Once this happened we started to see that not all
> > > module_impacted elements were being found for the given
> > > device_name. My question is, is this happening because the
> > > element we are doing the generate-id function on, in some cases
> > > would have multiple siblings in a given errata_section element?
> > > Most of the examples i have seen of using Muenchian Method are
> > > keying on a unique elment value that doesn't have any similar
> > > named siblings.
> > >
> > > I'm just trying to understand if this structure would work at
> > > all. Thanks for any info you can provide and thank you Martin
> > > Honnen for your help so far!
> > >
> > > Russ
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Muenchian work if more th, Wendell Piez wapiez@ | Thread | Re: [xsl] Muenchian work if more th, Russell Urquhart rus |
| Re: [xsl] Muenchian work if more th, Wendell Piez wapiez@ | Date | Re: [xsl] Muenchian work if more th, Russell Urquhart rus |
| Month |