xsl-list
[Top] [All Lists]

RE: [xsl] Unwanted New Line on Output

2007-06-18 03:21:12
Q.  Is this caused because the dept_id is at a higher level in the XML 
structure?

A. No.

Q. Is this a problem with my select="DEPT" actually selecting something more 
than just the
ID for the department.

A. No.

It's caused by the carriage return and linefeed that you have put in your XML 
file, i.e.:
<DEPT>
  1
  <EMPS>

I suggest that you re-structure your XML and template to look like this:


<DEPT>
  <DEPT_NUM>1</DEPT_NUM>
  <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>

<xsl:template mode="depts" match="DEPT">
  <xsl:value-of select="DEPT_NUM" /> <xsl:value-of select="EMP_NAME" />

</xsl:template>

There is absolutely no need for <xsl:for-each> and <xsl:param> in this 
situation. It only confuses things.
-- 
Charles Knell
cknell(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     Matt <puskas(_dot_)duck(_at_)gmail(_dot_)com>
Sent:     Mon, 18 Jun 2007 10:49:17 +0100
To:       xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>