Subject: RE: [xsl] #Please Help: Nested conditions From: "Matthias Fischer" <it@xxxxxxxxxxxxxxxxxx> Date: Fri, 20 Feb 2004 22:18:47 +0100 |
Thank you, Ken, also for your patient explanations to a newbie who hasn't yet grasped fully the philosophy which is behind the XSL lexic and grammar. I'll come to it later. 1st, your XSL snippet does not work out; the output is: <TABLE> <TTITLE/> <TBODY/> </TABLE> I accept your gentle offer and attach the code of the input (an XML export from a non-XML Adobe FrameMaker file) and the XSLT file to this mail (see below). 2nd, let me come to your comments, the purpose of which, I guess, was to make me understand once and for all. So let me try: <Q> <xsl:template match="TABLE"> <Q> <TABLE> <Q> ... <Q> <xsl:if test="TROW/TH"> You are looking here for all <TH> that are children of a <TROW>; however, if I know that all <TH> will always be in a <TROW>, I could write also <xsl:if test="TH">, couldn't I? Or would this imply here that I would be looking for <TH> that are children of <TABLE>? <Q> <xsl:apply-templates select="TROW[TH]"/> A similar expression I have found in M. Kay's "XSLT P.R.2" at the item "PredicateExpr". This is not where I would have looked for it, simply because I've never heard the term "PredicateExpr"... <Q> <xsl:copy><xsl:apply-templates/></xsl:copy> I would have written: <TROW><xsl:apply-templates/></TROW> but I assume it would have been the same. Correct? <Q> > <xsl:text disable-output-escaping="yes"> <Q> > </TGROUP></xsl:text> <Q> The above is expressly *not* the purpose of <Q> disable-output-escaping= ... I have used it as well to produce the DOCTYPE -- would that be ok? <Q> A number of things that I have hopefully illustrated for you above. Once again, thank you, - Matthias ============================================ Attachments ============================================ --------------------------------- 1) Input file --------------------------------- <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="D:\Daten\NEXUS\XML_FMaker\XSLT\NEXUS_XWare.xsl"?> <XML> <TITLE/> <H1-H1> <A ID="pgfId-492742"/>Descrizione funzionale</H1-H1> <H2-H2> <A ID="pgfId-507147"/>Uso previsto</H2-H2> <A2-INSET-Source> <A ID="pgfId-647166"/>Uso previsto della macchina descritta nel presente manuale di istruzioni e la depurazione delle acque di scarico urbane e/o industriali.</A2-INSET-Source> <TABLE> <CAPTION> <Table-TITLE> <A ID="pgfId-647169"/> Processi di depurazione</Table-TITLE> </CAPTION> <ROW> <TH ROWSPAN="1" COLSPAN="1"> <Table-HEADING> <A ID="pgfId-647171"/> Processi/sostanze</Table-HEADING> </TH> </ROW> <ROW> <CELL ROWSPAN="1" COLSPAN="1"> <Table-PARA> <A ID="pgfId-647173"/> Concentrazione di fanghi, sabbia od altri solidi in sospensione delle acque</Table-PARA> </CELL> </ROW> <ROW> <CELL ROWSPAN="1" COLSPAN="1"> <Table-PARA> <A ID="pgfId-647175"/> Concentrazione di sabbie od altri solidi granulosi in sospensione nell' acqua</Table-PARA> </CELL> </ROW> <ROW> <CELL ROWSPAN="1" COLSPAN="1"> <T2-Table-PARA> <A ID="pgfId-647177"/> Separazione di solidi grossolani trascinati da una corrente d' acqua</T2-Table-PARA> </CELL> </ROW> <ROW> <CELL ROWSPAN="1" COLSPAN="1"> <Table-PARA> <A ID="pgfId-647179"/> Raccolta dei surnatanti presenti sulla superficie delle acque</Table-PARA> </CELL> </ROW> <ROW> <CELL ROWSPAN="1" COLSPAN="1"> <Table-PARA> <A ID="pgfId-647181"/> Espulsione dei gas o vapori in sospensione nelle acque</Table-PARA> </CELL> </ROW> </TABLE> </XML> --------------------------------- 2) XSL --------------------------------- <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="XML"> <xsl:text disable-output-escaping="yes"><!DOCTYPE NEXUS SYSTEM "D:\Daten\NEXUS\XML_FMaker\DTDs\NEXUS	 5;XWare.dtd"> </xsl:text> <NEXUS> <HEAD> <META title="" category="" product="" company="" project="" version="" author="" translator="" mod-by="" mod-date="" state="" language="" keywords="" copyright="" doc-no=""/> </HEAD> <BODY> <xsl:apply-templates/> </BODY> </NEXUS> </xsl:template> <xsl:template match="H1-H1"> <H type="h-1"> <xsl:value-of select="."/> </H> </xsl:template> <xsl:template match="H2-H2"> <H type="h-2"> <xsl:value-of select="."/> </H> </xsl:template> <!-- INSETs shall be boxed later on --> <xsl:template match="A2-INSET-Source"> <P type="p-10"> <xsl:value-of select="."/> </P> </xsl:template> <xsl:template match="TABLE"> <TABLE> <TTITLE> <xsl:value-of select="Table-TITLE"/> </TTITLE> <xsl:if test="TROW/TH"> <THEAD> <xsl:apply-templates select="TROW[TH]"/> </THEAD> </xsl:if> <xsl:if test="TROW/TF"> <TFOOT> <xsl:apply-templates select="TROW[TF]"/> </TFOOT> </xsl:if> <TBODY> <xsl:apply-templates select="TROW[CELL]"/> </TBODY> </TABLE> </xsl:template> <xsl:template match="TROW"> <xsl:copy><xsl:apply-templates/></xsl:copy> </xsl:template> <xsl:template match="TH | CELL | TF"> <TDATA> <xsl:apply-templates/> </TDATA> </xsl:template> </xsl:stylesheet> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] #Please Help: Nested cond, G. Ken Holman | Thread | RE: [xsl] #Please Help: Nested cond, G. Ken Holman |
RE: Xquery for 'hard data probs' wa, Michael Kay | Date | RE: [xsl] #Please Help: Nested cond, Andreas L. Delmelle |
Month |