you could use map:aggregate, but because of the structure you'd need to do it in two steps - one to aggregate modules into a column element, and then one to aggregate the columns into a page element.
if you have the flexibility to change the structure, you could use xinclude or cinclude so for instance <module>AboutIntro.xhtml</module> would become something like <module><cinclude:include src="AboutIntro.xhtml"/></module> then you'd add the cinclude transformer as a step in your pipeline (probably right before your other transformer) and that should do it. If you can't change the structure you could also add a simple transform step that would convert from the origiginal <module>filename</module> to the cinclude version the docs provide a lot more detail - look for the under userdocs > transformers There may be some other options that don't occur to me at the moment. HTH, Geoff > -----Original Message----- > From: Jeff Ramsdale [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, January 29, 2003 2:16 PM > To: [EMAIL PROTECTED] > Subject: Aggregating XML > > > Hi there, > > I'm relatively new to Cocoon and XML and I've been lurking on the > list for a > while. I have a problem that's stymied me--perhaps someone could > help me? I > want to build an aggregate web page from a set of simple XHTML pages by > extracting the contents of their bodies and aggregating them. I > have an XML > file that designates the structure of the page: > > <?xml version="1.0"?> > <page> > <column> > <module>AboutIntro.xhtml</module> > <module>AboutQContinued.xhtml</module> > </column> > <column> > <module>AboutQ3.xhtml</module> > </column> > </page> > > I have a stylesheet that I mean to use to aggregate the files, > but I haven't > figured out a way to pull in the bodies of the files designated by the XML > above. I've designated below where I've been inserting my test code: > > <?xml version="1.0"?> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> > <xsl:output method="html" /> > <xsl:template match="/"> > <html> > <xsl:call-template name="page" /> > </html> > </xsl:template> > <xsl:template name="page"> > <xsl:apply-templates/> > </xsl:template> > <xsl:template match="column"> > <p> > <xsl:text>Column</xsl:text> > <br /> > <xsl:apply-templates select="module" /> > </p> > </xsl:template> > <xsl:template match="module"> > <xsl:variable name="mod"> > <xsl:value-of select="." /> > </xsl:variable> > <!-- HERE'S THE MISSING CODE --> > <xsl:text>Module</xsl:text> > <br /> > </xsl:template> > </xsl:stylesheet> > > What's the missing piece? I tried using xinclude and cinclude, but my > impression is that they are intended for an XML file to include > another XML > file, not for a stylesheet to include XML. (I do understand that a > stylesheet _IS_ XML, though, so perhaps I just missed how I > should have done > that?). I also tried to do a map:aggregate from my pipeline, but couldn't > figure out how to do that based on the contents of my XML file. > > If my approach is misguided, feel free to correct me. Also, if I > should know > of other projects doing similar things, do let me know. (I'm just > beginning > to read about Forrest, for instance.) > > Thanks, all! > > Jeff > > > > --------------------------------------------------------------------- > Please check that your question has not already been answered in the > FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > For additional commands, e-mail: <[EMAIL PROTECTED]> > > > --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>