[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Re: [xslt transform & grouping] Using the Muenchia

Subject: Re: Re: [xslt transform & grouping] Using the Muenchian Method?
From: "Werner, Wolfgang" <mail@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 05 Oct 2004 16:52:23 +0200
filter xsl
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Michael,

as David pointed out before,
	<xsl:param name="filter" select="food"></xsl:param>
does not set the parameter named filter to the String 'food'.
I used
	<xsl:param name='filter'>food</xsl:param>
with xsltproc and it gives the following result (I removed some whitespace):
<?xml version="1.0" encoding="utf-8"?>
~ <Documents>
~  <Document name="sub"/>
~  <Document name="main"/>
~  <Document name="sub"/>
~  <Document name="main"/>
</Documents>

which is not what you hope to get, but it should help you to debug your
XPath.

Wolfgang

Michael PG wrote:

| Listen,
|
| I think that we're going back and forth here.
|
|
| when this line is used:
|
| <xsl:param name="filter" select="'food'"></xsl:param>
|
| this error is generated:
|
| "Exception Details: System.NullReferenceException: Object reference not
| set to an instance of an object."
|
| but when i use
|
| <xsl:param name="filter" select="food"></xsl:param>
|
| there is no error.
|
| OK ?
|
| Now,
|
| When everything works without errors, generated XML output is:
|
| <Documents></Documents>
|
| instead of the required elements.
|
| THat is, some expression must be wrong.
|
| Could you do following, please, and give me your result of the output
file.
| If your output generates only <Documents></Documents>, could you see how
| to make it generate the filtered elements instead?
|
|
| Use this XSLT to genterate new XML file by using specified XML input file:
|
| XSLT:
|
| <?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:param name="filter" select="food"></xsl:param>
|
|    <xsl:template match="Documents">
|
|         <xsl:apply-templates select="*[@filter=$filter]"/>
|
|             <Documents>
|                  <xsl:for-each
|
select="Document[@filter=$filter]/Article[count(.|key('by-info',@info)[1])=1]">

|
|                     <Document name="{@info}">
|                          <xsl:copy-of
| select="key('by-info',@info)[@filter=$filter]"/>
|                     </Document>
|                   </xsl:for-each>
|             </Documents>
|
|         </xsl:template>
|
| </xsl:stylesheet>
|
|
| INPUT XML:
|
| <?xml version="1.0" encoding="utf-8"?>
|
| <Documents>
|     <Document chapter="1" title="title 1" href="file1.xml" filter="food">
|         <Article title="1.1" info="sub" filter="food"/>
|         <Article title="1.2" info="main" filter="drink"/>
|     </Document>
|     <Document chapter="2" title="title 2" href="file2.xml" filter="food">
|         <Article title="2.1" info="sub" filter="drink"/>
|         <Article title="2.2" info="main" filter="food"/>
|     </Document>
| </Documents>
|
|
|
|
|
|
|
|> From: David Carlisle <davidc@xxxxxxxxx>
|> Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
|> To: xrow@xxxxxxx
|> CC: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
|> Subject: Re:  Re: [xslt transform & grouping] Using the Muenchian
|> Method?
|> Date: Tue, 5 Oct 2004 15:08:46 +0100
|>
|> [going back on list]
|> > As I said, I am unable to use
|>
|> as posted I get:
|>
|> $ saxon filter.xml filter.xsl
|>
|> Error at xsl:for-each on line 17 of file:/c:/tmp/filter.xsl:
|>   Key 'by-info' has not been defined
|> Transformation failed: Run-time errors were reported
|>
|> taking
|>
|>     <xsl:key name="by-info" match="Article" use="@info"/>
|>
|> from an earlier post and adding it after xsl:stylesheet, I get:
|>
|> $ saxon filter.xml filter.xsl
|> <?xml version="1.0" encoding="utf-8"?>
|>
|>
|>
|>
|>
|>
|> <Documents>
|>    <Document name="sub">
|>       <Article title="1.1" info="sub" filter="food"/>
|>    </Document>
|>    <Document name="main">
|>       <Article title="2.2" info="main" filter="food"/>
|>    </Document>
|> </Documents>
|>
|>
|>
|> That is, apart from droping your key definintion, the code you posted
|> works as expected. So if you really get
|>
|> "Exception Details: System.NullReferenceException: Object reference
|> not set
|> to an instance of an object." in myXslTrans.Transform(myXPathDoc, null,
|> writer, null);
|>
|> looks like a bug in your processor (Microsoft .net implementation?)
|>
|> David
|>
|> ________________________________________________________________________
|> This e-mail has been scanned for all viruses by Star. The
|> service is powered by MessageLabs. For more information on a proactive
|> anti-virus service working around the clock, around the globe, visit:
|> http://www.star.net.uk
|> ________________________________________________________________________
|>
|>
|
| _________________________________________________________________
| Express yourself instantly with MSN Messenger! Download today - it's
| FREE! hthttp://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
|
|
|
|

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

iD8DBQFBYrUmqjaicDyx8o8RAs6NAJwI8TI63GOU/1HU/0Mr7cRTm1MJXgCfTVKo
/Q/d/cBfgkXPsL3f8DJTVr0=
=zlKj
-----END PGP SIGNATURE-----
Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.