Subject: AW: [xsl] can't display heading in between fields...pls. help From: Markus Abt <abt@xxxxxxxx> Date: Thu, 17 Jul 2003 15:57:49 +0200 |
John, it's hard to help you without knowing the relevant structure of your XML input, and all relevant parts of your style sheet. 1. So I have to guess for the Input XML: - your XML tree contains only one <HSDataContainerType name="Inputs"> - your XML tree contains only one <HSDataContainerType name="Outputs"> - "Inputs" and "Outputs" are siblings, at least not contained in each other The XML part you posted in one of your recent mails contained only one "Outputs" and no "Inputs", so I can't tell, if the above is true. If it is true then it should be very simple to do. 2. For your XSL, I guess: What you are trying to do is: For every field type <HSString>, <HSDecimal>, <HSInteger>, etc.: - write a template which outputs the field properties. - if it is the first "Inputs" or "Outputs" field, regardless of the type, print the {In|Out}put Descriptions heading. This seems to be a complicated solution to me. You have to copy (or call) the code to do this in every type's template. Better: Your stylesheet contains some code which looks roughly like: <xsl:apply-templates select="HSDataContainerType"/> and which is responsible for processing the "Inputs" and "Outputs" Container Types. How does it look like in your stylesheet? (i.e. there may be a mode attribute) If you found it, change it to (roughly:) <h5><a name="in">Input Description</a></h5> <xsl:apply-templates select="HSDataContainerType[@name='Inputs']"/> <h5><a name="out">Output Description</a></h5> <xsl:apply-templates select="HSDataContainerType[@name='Outputs']"/> You can use your tests "[contains(@name, 'Inputs')]" if nescessary. You may also output the description headings only if there exist at least input/output field, resp. The easiest way to do this is write templates for HSDataContainerType[@name='***puts'] and put the heading there, but you may also do a simple <xsl:if test="HSDataContainerType[@name='***puts']"> around the above. The logic behind is: "Find the part in your XML input which corresponds to the wanted description heading on HTML output." This is not the first "Input" field. It is the <HSDataContainerType name="Inputs"> element. Hope this helps. I fear that I can't help you more without exact knowledge of your XML structure (see [1.] above) and all relevant parts of your stylesheet (not only the templates but also how they are applied or called). Regards, Markus __________________________ Markus Abt Comet Computer GmbH http://www.comet.de ---------- Von: John Liebermann Gesendet: Mittwoch, 16. Juli 2003 23:19 An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Betreff: [xsl] can't display heading in between fields...pls. help [...] The highlighted 'Output Description' above is displayed during all times where there is a <HSString> which has an ancestor 'Output'. I want this to be displayed ONLY once. So, what i can't figure out is how to be able to display a heading in between the descriptions (as marked on the output above). Thank you all for your help. Regards, John XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl for two type of docum, Wendell Piez | Thread | RE: [xsl] can't display heading in , John Liebermann |
Re: [xsl] xsl for two type of docum, David Carlisle | Date | [xsl] Extracting values from the XM, Charlie Barker |
Month |