Thank you Ludovic.
Just to ensure that I got you
right:
You say that I need to write an
action that will get the content of the file, will write it, and then in the
same pipeline there will be generator that will just read the file that was
written and will serialize the output to the browser?
But I need to write the
file after it was transformed by the xsl. How this is possible in
sitemap?
I just don't understand the logic of
what I need to do in order to both write to the file and output file to the
browser.
Sorry I'm bothering you, but can you
just explain me in little more detail what I need to do?
Thank you very very
much.
Anna
----- Original Message -----
Sent: Wednesday, December 18, 2002 12:44
PM
Subject: Re: Writing output of pipeline
to a file
Hi Anna,
When you use <redirect:write
file="testWrite.xml">, your XML datas are redirected, so you have to
generate other XML datas for your serializer. In your case in error, no XML
datas are passed after the transformation.
So, in your case, you have to transform AND save
your XML datas. i think the best solution is saving these datas in file in an
Action, and use this file for transformation.
Ludovic
----- Original Message -----
Sent: Wednesday, December 18, 2002 8:44
AM
Subject: Re: Writing output of pipeline
to a file
Thank you all for answering me,
but I still can't manage to do it.
Here is my pipeline:
<map:match
pattern="test.html">
<map:generate src=""/>
<map:transform src=""/>
<map:serialize type="xml"/>
<map:match>
Here is my
writeToFile.xsl:
<?xml version="1.0"
encoding="UTF-8"?>
<xsl:output
method="xml"/>
<xsl:template match="/">
<xsl:copy-of select="*"/>
<redirect:open
file="testWrite.xml"/> <redirect:write
file="testWrite.xml"> <xsl:copy-of
select="*"/> </redirect:write>
<redirect:close file="testWrite.xml"/>
</xsl:template>
</xsl:stylesheet>
When I am running this, I get the following error
message from the Cocoon:
type
fatal
message Exception in
HTMLGenerator.generate()
description
org.apache.cocoon.ProcessingException: Exception in
HTMLGenerator.generate(): java.lang.NullPointerException
sender org.apache.cocoon.servlet.CocoonServlet
source Cocoon servlet
request-uri
If I remove all the redirect: lines, then I get the
serialized input file, so the input is OK, obviously,
I have some problems with this redirect:
Can anybody please tell me what's wrong?
Thank you very much for help.
Anna
----- Original Message -----
Sent: Tuesday, December 17, 2002 4:36
PM
Subject: Re: Writing output of
pipeline to a file
First, i had just to save it (not to send the
result file to the client). I did it in a stylesheet like this
:
<?xml version="1.0"
encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect" extension-element-prefixes="redirect">
<xsl:output method="xml"
encoding="ISO-8859-1"/> <xsl:template
match="/"> <redirect:write
file="{$path}"> <xsl:copy-of
select="*"/> </redirect:write>
<TEXTE>output for the
client</TEXTE>
</xsl:template
> </xsl:stylesheet>
But there was problems with some
configuration, so finally i did it in my Action who had to generate the
XML.
If you have to duplicate your XML stream, one
for saving, another for the client, i think you have to do this in an
action. It generates the XML file and this one is next
transformed/serialized.
<map:match
pattern="some.html">
<map:act
type="YourAction"> <map:generate
src=""/>
<map:transform src=""/>
<map:serialize type="html"/>
</map:match>
Ludovic
----- Original Message -----
Sent: Tuesday, December 17, 2002
3:09 PM
Subject: Re: Writing output of
pipeline to a file
Hi Ludovic. Thank you for
answering.
Can you say what do you do to
save this XML file?
I mean, if I have the
following pipeline:
<map:match
pattern="some.html">
<map:generate src=""/>
<map:transform src=""/>
<map:serialize type="xml"/>
</map:match>
this pipeline produces an xml
file. What should I use in order to save this file as
"some.xml".
Sorry for asking almost
exactly the same, I just didn't understood from you answer what should I
do.
Thank you very much for
help.
Anna
----- Original Message -----
Sent: Tuesday, December 17, 2002
4:03 PM
Subject: Re: Writing output of
pipeline to a file
Hi Anna,
I had this problem and didn't find a
solution for caching the output of the pipeline to perform an
OutputAction as saving in a file. Finally i chose to save the XML, and
to perfom the transformation/serialization when a request need the
transformed file. It supposes that the transformers are not
modified.
Another solution should be using the
CommandLine classes to perform the pipeline in an action but i can't
say more about it.
Hope a better solution
exists...
Ludovic
----- Original Message -----
Sent: Tuesday, December 17,
2002 2:19 PM
Subject: Writing output of
pipeline to a file
Hello All!
I know that today I ask
too many questions, but since cocoon is new to me,
sometimes I don't even
know where to look for the information, so you are my only
help.
Thanks for everyone who
took time to answer my questions. Here is another one:
At the end of the
pipeline the result file is output to the browser.
I need the result file
also to be saved in the file on my hard drive.
How can I do
this?
I read about the
SourceWritingTransformer, but I understood that I can write
<source:write> tag in xml only, not in xsl.
Or maybe I can use it to
do what I need, and I just don't know how?
Please tell
me.
Thank you very much for
your help.
Anna
|