[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: "Michael PG" <xrow@xxxxxxx>
Date: Tue, 05 Oct 2004 14:27:17 +0000
xml filter xsl
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/


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.