xsl-list
[Top] [All Lists]

Re: Re: [xslt transform & grouping] Using the Muenchian Method?

2004-10-06 00:57:04
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

xsltproc, XMLSpy's internal processor and msxml 3.0 yield the following
result (differing only in whitespace) using the files in your last mail:
<Documents>
~  <Document name="sub"/>
~  <Document name="main">
~    <Article title="1.2" info="main" filter="food"/>
~    <Article title="2.2" info="main" filter="food"/>
~  </Document>
</Documents>

So perhaps it's a bug in msxml 4.0, as Michael suggested.

Wolfgang

Michael PG wrote:

| Hi Anton,
|
|
| Here's the XSL stylesheet:
|
| <?xml version="1.0" encoding="UTF-8"?>
|
| <xsl:stylesheet version="1.0"
| xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
|
|    <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
|
|    <xsl:key name="by-info" match="Article" use="@info"/>
|
|    <xsl:param name="filter" select="'food'"></xsl:param>
|
|    <xsl:template match="Documents">
|
|         <!-- @filter='' will be true if it is there and empty or if it
| is not there at all) -->
|         <xsl:apply-templates select="*[(_at_)filter='' or @filter=$filter]"/>
|
|             <Documents>
|                  <xsl:for-each select="Document[(_at_)filter='' or
| @filter=$filter]/Article[count(.|key('by-info',@info)[(_at_)filter='' or
| @filter=$filter][1])=1]">
|                     <Document name="{(_at_)info}">
|                          <xsl:copy-of
| select="key('by-info',@info)[(_at_)filter=$filter]"/>
|                     </Document>
|                   </xsl:for-each>
|             </Documents>
|
|         </xsl:template>
|
| </xsl:stylesheet>
|
|
| The line proposed by David C. gives an exception.
|
| <xsl:for-each select="Document[(_at_)filter='' or
| @filter=$filter]/Article[count(.|key('by-info',@info)[(_at_)filter='' or
| @filter=$filter][1])=1]">
|
|
| The XML looks like:
|
| <?xml version="1.0" encoding="utf-8"?>
|
| <Documents>
|     <Document chapter="1" title="title 1" href="file1.xml" filter="">
|         <Article title="1.1" info="sub" filter="drink"/>
|         <Article title="1.2" info="main" filter="food"/>
|     </Document>
|     <Document chapter="2" title="title 2" href="file2.xml" filter="drink">
|         <Article title="2.1" info="sub" filter="drink"/>
|         <Article title="2.2" info="main" filter="food"/>
|     </Document>
| </Documents>
|
|
| Thanx.
|
| -M
|
|
|> From: Anton Triest <anton(_at_)cking(_dot_)be>
|> Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
|> To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
|> Subject: Re: [xsl] Re: [xslt transform & grouping] Using the Muenchian
|> Method?
|> Date: Wed, 06 Oct 2004 00:47:56 +0200
|>
|> Michael PG wrote:
|>
|>> After adding the suggested line I got an exception lake it last case.
|>>
|>> select="Document[(_at_)filter='' or
|>> @filter=$filter]/Article[count(.|key('by-info',@info)[(_at_)filter='' or
|>> @filter=$filter][1])=1]">
|>
|>
|>
|> Hi Michael (I'm jumping in again, was away yesterday)
|>
|> did you define the key in this template? (that caused the exception
|> last time, didn't it)
|> if so, maybe you'll better post the complete stylesheet once more...
|> (+ exception details)
|>
|> Anton
|>
|>
|> --+------------------------------------------------------------------
|> XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
|> To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
|> or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
|> --+--
|>
|
| _________________________________________________________________
| On the road to retirement? Check out MSN Life Events for advice on how
| to get there! http://lifeevents.msn.com/category.aspx?cid=Retirement
|
|
| --+------------------------------------------------------------------
| XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
| or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
| --+--
|
|

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBY6VPqjaicDyx8o8RAny+AJ4lFZyTIZAW9QenrIJvgFMEPAtqJQCdHetL
V5eR7aTRjDw/XcDP6T5kdDY=
=rLp6
-----END PGP SIGNATURE-----


<Prev in Thread] Current Thread [Next in Thread>