|
Subject: Re: Another newbie question From: "S.Ramaswamy" <srswamy@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 09 Dec 1999 10:15:28 +0530 |
Sanjay Saxena wrote:
>
>
> Thanks a lot. However, this does not work. As suggested, CONTAINERS
> is not my root. My XML looks as shown below:
>
> <FORMS>
> <CONTAINERS>
> <CONTAINER>
> <PRE_HTML>DEPT_PREHTML</PRE_HTML>
> <TITLE>Departments</TITLE>
> <POST_HTML>DEPT_POSTHTML</POST_HTML>
> </CONTAINER>
>
> <CONTAINER>
> <PRE_HTML>EMP_PREHTML</PRE_HTML>
> <TITLE>Employees</TITLE>
> <POST_HTML>EMP_POSTHTML</POST_HTML>
> </CONTAINER>
> </CONTAINERS>
>
> <DEPT_PREHTML>
> <!-- Well-formed HTML. -->
> <DIV id="Layer1" style="position: absolute">
> <IMG src="/images/edu.gif" width="917"
> height="104"/>
> </DIV>
> </DEPT_PREHTML>
>
> <DEPT_POSTHTML>
> <!-- Some more well-formed HTML. -->
> </DEPT_POSTHTML>
>
> <EMP_PREHTML>
> <!-- Some more well-formed HTML. -->
> </EMP_PREHTML>
>
> <EMP_POSTHTML>
> <!-- Some more well-formed HTML. -->
> </EMP_POSTHTML>
> </FORMS>
>
> I tried to use the complete path /FORMS/DEPT_PREHTML and
> /FORMS/DEPT_POSTHTML
> as values for PRE_HTML and POST_HTML elements, respectively. It still
> does
> not work. The XSL stylesheet looks as shown below:
>
> <xsl:template match="/FORMS/CONTAINERS">
> <xsl:for-each select="CONTAINER">
>
> <xsl:copy-of select="//*[name(.)=current()/PRE_HTML]" />
//* means any element that is a descendant of CONTAINER
whereas DEPT_PREHTML is a descendant of FORMS so
<xsl:copy-of select="ancestor::FORMS//*[name(.)=current()/PRE_HTML"
ancestor::FORMS select the element named FORMS which is
an ancestor of current node CONTAINER
// select the descendants of FORMS
[name(.)=current()/PRE_HTML] apply a filter on descendants such that
only the element whose tag
is equal to the current node's child
PRE_HTML is copied
>
> <!-- Do some more things here -->
>
> <xsl:copy-of select="//*[name(.)=current()/POST_HTML]" />
>
> </xsl:for-each>
> </xsl:template>
>
> I tried using xsl:variable as suggested by another post and that did
> not work either. I am not seeing the node containing the well-formed
> HTML getting copied to the output.
>
> Thanks again,
> -- Sanjay
>
> David Carlisle wrote:
>
> > <xsl:template match="/CONTAINERS">
> > This only works if CONTAINERS is the document element but you
> > indicated
> > I think that your DEPT_POSTHTML elements were outside this.
> >
> > <xsl:copy-of select="PRE_HTML"
> > <xsl:apply-templates select="*|@*|text()"/>
> > </xsl:copy-of>
> >
> > you are confusing the syntax for xsl:copy and xsl:copy-f. and also
> > that select expression starts from the current CONTAINER node, but
> > PRE_HTML isn't a child of that.
> >
> > So....
> >
> > ===========================================
> > <x>
> > <CONTAINERS>
> > <CONTAINER>
> > <PRE_HTML>DEPT_PREHTML</PRE_HTML>
> > <TITLE>Departments</TITLE>
> > <POST_HTML>DEPT_POSTHTML</POST_HTML>
> > </CONTAINER>
> > <CONTAINER>
> > <PRE_HTML>EMP_PREHTML</PRE_HTML>
> > <TITLE>Employees</TITLE>
> > <POST_HTML>EMP_POSTHTML</POST_HTML>
> > </CONTAINER>
> > </CONTAINERS>
> >
> > <DEPT_PREHTML>
> > <DIV id="Layer1" style="position: absolute">
> > <IMG src="/images/edu.gif" width="917"
> > height="104"/>
> > </DIV>
> > </DEPT_PREHTML>
> >
> > <DEPT_POSTHTML>
> > <!-- Some more well formed HTML. -->kkk
> > </DEPT_POSTHTML>
> >
> > </x>
> >
> > ===========================================
> >
> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > version="1.0"
> > >
> >
> > <xsl:output method="xml" indent="yes"/>
> >
> > <xsl:template match="CONTAINERS">pppp
> > <xsl:for-each select="CONTAINER">l
> >
> > <xsl:copy-of select="//*[name(.)=current()/PRE_HTML]" />
> >
> > <!-- Do some more things here -->
> >
> > <xsl:copy-of select="//*[name(.)=current()/POST_HTML]" />
> >
> > </xsl:for-each>
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> > ===========================================
> >
> > David
> > PS you see it is better to ask on the list, than to ask directly:-)
> >
> > PPS You mail was included twice, once as text and once a HTML,
> > please
> > don't do that.
> >
> > XSL-List info and archive:
> > http://www.mulberrytech.com/xsl/xsl-list
--
==--==--==--==--==--==--==--==--==--==--==--==--==--==
S.Ramaswamy
Matrix Infotech Syndicate
D-7, Poorti, Vikaspuri, New Delhi, 110018, India
PHONE: +91-11-5610050, FAX: +91-11-5535103
WEB http://MatrixInfotech.HyperMart.Net
==--==--==--==--==--==--==--==--==--==--==--==--==--==
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Another newbie question, Sanjay Saxena | Thread | RE: Another newbie question, Kay Michael |
| Re: Converting XML <link> to HTML a, Brett McLaughlin | Date | RE: Converting XML <link> to HTML a, Mike Brown |
| Month |