Subject: RE: [xsl] Unwanted New Line on Output From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 18 Jun 2007 11:13:24 +0100 |
It would be better to wrap the department number in its own element: <DEPT> <DEPT_NR>1</DEPT_NR> <EMPS> <EMP_NAME> Fred Bloggs</EMP_NAME> <EMP_AGE> 25 </EMP_AGE> </EMPS> or if you prefer, in an attribute: <DEPT NR="1"> <EMPS> <EMP_NAME> Fred Bloggs</EMP_NAME> <EMP_AGE> 25 </EMP_AGE> </EMPS> I can't actually explain the output you're getting, because if the template is invoked with DEPT as the context node, then <xsl:value-of select="DEPT"/> will select nothing (DEPT does not have a child called DEPT), while if it is called with DEPT_DETAILS as the context node, it will select a string such as \n 1 \n \n \Fred Bloggs \n 25 \n \n \n Joe Smith \n 35 .... where \n is a newline. If you can't redesign the XML, then you can pick up the department number (with DEPT as the context node) using normalize-space(text()[1]) Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Matt [mailto:puskas.duck@xxxxxxxxx] > Sent: 18 June 2007 10:49 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Unwanted New Line on Output > > Morning list! > > I have the following XML structure: > > <DEPT_DETAILS> > <DEPT> > 1 > <EMPS> > <EMP_NAME> Fred Bloggs</EMP_NAME> > <EMP_AGE> 25 </EMP_AGE> > </EMPS> > <EMPS> > <EMP_NAME> Joe Smith</EMP_NAME> > <EMP_AGE> 35 </EMP_AGE> > </EMPS> > </DEPT> > <DEPT> > 2 > <EMPS> > <EMP_NAME> Jill Bloggs</EMP_NAME> > <EMP_AGE> 19 </EMP_AGE> > </EMPS> > <EMPS> > <EMP_NAME> Gerry Halliwell</EMP_NAME> > <EMP_AGE> 45 </EMP_AGE> > </EMPS> > </DEPT> > </DEPT_DETAILS> > > I want the following output (as text): > > 1 Fred Bloggs > 1 Joe Smith > 2 Jill Bloggs > 2 Gerry Halliwell > > So my template looks something like: > > <xsl:apply-template mode="depts" select="DEPT_DETAILS/DEPT"/> > > <xsl:template mode="depts" match="*"> > <xsl:param name="deptID" select="DEPT"/> > <xsl:for-each select="EMPS"> > <xsl:value-of select="$deptID"/> > <xsl:value-of select="EMP_NAME"/> > <xsl:text> </xsl:text> <!-- Add CR --> > </xsl:for-each> > </xsl:template> > > But the output I am getting is along the lines of: > > 1 > Fred Bloggs > 1 > Joe Smith > 2 > Jill Bloggs > 2 > Gerry Halliwell > > With the emp name being on a second line. Is this caused > because the dept_id is at a higher level in the XML > structure? Is this a problem with my select="DEPT" actually > selecting something more than just the ID for the department. > > Any answers/suggestions appreciated.... > > Matt
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Unwanted New Line on Output, Matt | Thread | Re: [xsl] Unwanted New Line on Outp, Manfred Staudinger |
Re: [xsl] grouping-problem, Annina . Hirschi-Wys | Date | Re: [xsl] Unwanted New Line on Outp, Manfred Staudinger |
Month |