Subject: Re: [xsl] Re: [xslt transform & grouping] Using the Muenchian Method? From: "Werner, Wolfgang" <mail@xxxxxxxxxxxxxxxxxxx> Date: Tue, 05 Oct 2004 16:52:23 +0200 |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
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.
| 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: [xsl] 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Re: [xslt transform & gro, Michael Kay | Thread | Re: [xsl] Re: [xslt transform & gro, David Carlisle |
Re: [xsl] Re: [xslt transform & gro, Ragulf Pickaxe | Date | [xsl] using ENTITYRESOLVER with Xal, Al |
Month |