XSL & XML newbie: How to get rid of blank lines in output??

Discussion in 'XML' started by ricky, Oct 17, 2004.

  1. ricky

    ricky Guest

    Here is my XML file: 'MSR.xml':

    <?xml version="1.0" standalone="yes"?>
    <MSR>
    <Info>
    <BT30004>4:44</BT30004>
    <LASTISA />
    <CM10009>3:33</CM10009>
    <ES00014>1:00</ES00014>
    <LASTSRDY />
    <LASTSRM1 />
    <LASTSRM2>24:23 PM Monday</LASTSRM2>
    <MVS>KL30030-&gt;KL50001
    BT30004
    IS00075-&gt;IS60012</MVS>
    <SSEC>9:99</SSEC>
    <SIVU>4:44</SIVU>
    <TNC />
    <IPI />
    <RPI>3:33 AM</RPI>
    <CMHM>6:23 AM</CMHM>
    <AutoSys />
    </Info>
    </MSR>

    And here is my XSL file: 'MSR.xsl':

    <xsl:stylesheet xmlns:xsl="<http://www.w3.org/1999/XSL/Transform>"
    version="1.0">
    <xsl:eek:utput method="xml" indent="yes" />
    <xsl:strip-space elements="MVS AutoSys" />
    <xsl:template match="/">
    <html>
    <head>
    <title>Daily Operations Status Report</title>
    </head>
    <body bgcolor="#f0f0f0"><H1 align="center">Daily Operations Status
    Report</H1>
    <H2 align="left"><U><font color="#ff0000">Critical Application Cycle
    End Times</font></U></H2>

    <xsl:for-each select="MSR/Info">

    <xsl:choose>
    <xsl:when test="(string-length(BT30004) &gt;0) or
    (string-length(LASTISA) &gt;0)">
    <font color="#0000CC" size="4"><STRONG>Critical Path
    Insurance/ISA</STRONG></font>
    </xsl:when>
    <xsl:eek:therwise>
    </xsl:eek:therwise>
    </xsl:choose>

    <xsl:if test="string-length(BT30004) &gt;0">
    <li><strong><xsl:text>Insurance DataBase ended at:
    </xsl:text><xsl:value-of select="BT30004" /></strong></li>
    </xsl:if>

    <xsl:if test="string-length(LASTISA) &gt;0">
    <li><strong><xsl:text>ISA DataBase ended at: </xsl:text><xsl:value-of
    select="LASTISA" /></strong></li>
    </xsl:if>

    <br />
    <br />

    <xsl:choose>
    <xsl:when test="(string-length(SSEC) &gt;0) or (string-length(SIVU)
    &gt;0)">
    <font color="#0000CC" size="4"><STRONG>Securities</STRONG></font>
    </xsl:when>
    <xsl:eek:therwise>
    </xsl:eek:therwise>
    </xsl:choose>


    <xsl:if test="string-length(SSEC) &gt;0">
    <li><STRONG><xsl:text>Securities System Extract Cycle (2:30 AM SLA)
    ended at: </xsl:text><xsl:value-of select="SSEC" /></STRONG></li>
    </xsl:if>

    <xsl:if test="string-length(SIVU) &gt;0">
    <li><STRONG><xsl:text>Securities Investment Warehouse Update (6 AM
    SLA) ended at: </xsl:text><xsl:value-of select="SIVU" /></STRONG></li>
    </xsl:if>
    <br />
    <br />

    <xsl:choose>
    <xsl:when test="(string-length(CM10009) &gt;0) or
    (string-length(ES00014) &gt;0)">
    <font color="#0000CC" size="4"><STRONG>Commissions</STRONG></font>
    </xsl:when>
    <xsl:eek:therwise>
    </xsl:eek:therwise>
    </xsl:choose>


    <xsl:if test="string-length(CM10009) &gt;0">
    <li><STRONG><xsl:text>Daily Commissions ended at:
    </xsl:text><xsl:value-of select="CM10009" /></STRONG></li>
    </xsl:if>

    <xsl:if test="string-length(ES00014) &gt;0">
    <li><STRONG><xsl:text>Semi-Monthly Commissions ended at:
    </xsl:text><xsl:value-of select="ES00014" /></STRONG></li>
    </xsl:if>
    <br />
    <br />


    <xsl:choose>
    <xsl:when test="(string-length(LASTSRDY) &gt;0) or
    (string-length(LASTSRM1) &gt;0) or (string-length(LASTSRM2) &gt;0)">
    <font color="#0000CC" size="4"><STRONG>Sales</STRONG></font>
    </xsl:when>
    <xsl:eek:therwise>
    </xsl:eek:therwise>
    </xsl:choose>

    <xsl:if test="string-length(LASTSRDY) &gt;0">
    <li><STRONG><xsl:text>Daily Sales Reporting Cycle ended at:
    </xsl:text><xsl:value-of select="LASTSRDY" /></STRONG></li>
    </xsl:if>

    <xsl:if test="string-length(LASTSRM1) &gt;0">
    <li><STRONG><xsl:text>MonthEnd Sales Day1 (Running) or (LASTSRM1)
    ended at: </xsl:text><xsl:value-of select="LASTSRM1" /></STRONG></li>
    </xsl:if>

    <xsl:if test="string-length(LASTSRM2) &gt;0">
    <li><STRONG><xsl:text>MonthEnd Sales Day2 (Running) or (LASTSRM2)
    ended at: </xsl:text><xsl:value-of select="LASTSRM2" /></STRONG></li>
    </xsl:if>
    <br />
    <br />


    <xsl:choose>
    <xsl:when test="(string-length(TNC) &gt;0) or (string-length(IPI)
    &gt;0) or (string-length(RPI) &gt;0) or (string-length(CMHM) &gt;0)">
    <font color="#0000CC" size="4"><STRONG>EBIS/TNC</STRONG></font>
    </xsl:when>
    <xsl:eek:therwise>
    </xsl:eek:therwise>
    </xsl:choose>

    <li><STRONG><xsl:text>EBIS/TNC Data Mart Load Status:
    </xsl:text></STRONG></li>

    <xsl:if test="string-length(TNC) &gt;0">
    <li><STRONG><xsl:text>TNC/Client Information (7am SLA) ended at:
    </xsl:text><xsl:value-of select="TNC" /></STRONG></li>
    </xsl:if>

    <xsl:if test="string-length(IPI) &gt;0">
    <li><STRONG><xsl:text>Investment Product Information (8am SLA) ended
    at: </xsl:text><xsl:value-of select="IPI" /></STRONG></li>
    </xsl:if>

    <xsl:if test="string-length(RPI) &gt;0">
    <li><STRONG><xsl:text>Risk Product Information (7am SLA) ended at:
    </xsl:text><xsl:value-of select="RPI" /></STRONG></li>
    </xsl:if>

    <xsl:if test="string-length(CMHM) &gt;0">
    <li><STRONG><xsl:text>Contact Management Historical Mart ended at:
    </xsl:text><xsl:value-of select="CMHM" /></STRONG></li>
    </xsl:if>

    <br />
    <br />

    <xsl:if test="string-length(MVS) &gt;0">
    <font color="#0000CC" size="4"><STRONG><U><xsl:text>MVS Jobs
    Tabled</xsl:text></U></STRONG></font><pre><xsl:value-of select="MVS"
    /></pre>
    </xsl:if>

    <xsl:if test="string-length(AutoSys) &gt;0">
    <font color="#0000CC" size="4"><STRONG><U><xsl:text>AutoSys Jobs
    Tabled</xsl:text></U></STRONG></font><pre><xsl:value-of
    select="AutoSys" /></pre>
    </xsl:if>

    </xsl:for-each>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>


    Here is the HTML output after my VB .Net script transforms the the
    XML->XSL->MSR.html. As you can see there is 'blank line' between 'MVS
    Jobs Tabled' heading and the first line of data 'KL30030->KL50001'.
    The same is with 'AutoSys Jobs Tabled' heading and it's first line of
    data 'dailyopsfail'. I've tried '<xsl:eek:utput method="xml" indent="yes"
    />
    <xsl:strip-space elements="MVS AutoSys" />' but the blank lines are
    still there. I'm using '<pre>' to preserve the formatting in the 'MVS'
    and 'AutoSys' fields.

    Daily Operations Status Report
    Critical Application Cycle End Times
    Critical Path Insurance/ISA
    Insurance DataBase ended at: 4:44

    Securities
    Securities System Extract Cycle (2:30 AM SLA) ended at: 9:99
    Securities Investment Warehouse Update (6 AM SLA) ended at: 4:44

    Commissions
    Daily Commissions ended at: 3:33
    Semi-Monthly Commissions ended at: 1:00

    Sales
    MonthEnd Sales Day2 (Running) or (LASTSRM2) ended at: 24:23 PM Monday

    EBIS/TNC
    EBIS/TNC Data Mart Load Status:
    Risk Product Information (7am SLA) ended at: 3:33 AM
    Contact Management Historical Mart ended at: 6:23 AM

    MVS Jobs Tabled

    KL30030->KL50001
    BT30004
    IS00075->IS60012


    AutoSys Jobs Tabled

    dailyopsfail
    commissnData



    Basically, I have a VB .net app. that users input data into textboxes
    except for the MVS and AutoSys these are inputted into RichTextBoxes
    to preserve the 'return' character'. Then the app. creates a XML and
    formats it against a XSL file and then transforms it into a html page.
    I think the script is doing it job ok. But, the XSL file needs to be
    looked at.

    Any ideas?????
    ricky, Oct 17, 2004
    #1
    1. Advertising

  2. ricky

    Joris Gillis Guest

    > As you can see there is 'blank line' between 'MVS
    > Jobs Tabled' heading and the first line of data 'KL30030->KL50001'.
    > The same is with 'AutoSys Jobs Tabled' heading and it's first line of
    > data 'dailyopsfail'. I've tried '<xsl:eek:utput method="xml" indent="yes"
    > />
    > <xsl:strip-space elements="MVS AutoSys" />' but the blank lines are
    > still there. I'm using '<pre>' to preserve the formatting in the 'MVS'
    > and 'AutoSys' fields.


    This is simply a html displaying matter.
    Use this line in the CSS to strip the 'blank lines' (which do not really
    exist).
    pre {margin-top:0px}

    by the way, more CSS could (and should?) be used in the XSLT:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
    <xsl:eek:utput method="html" indent="yes" />
    <xsl:template match="/">
    <html>
    <head>
    <style type="text/css">
    body {background-color:#f0f0f0}
    h1 {text-align:center}
    h2 {text-align:left;text-decoration:underline;color:red}
    h3 {color:#00c;font-size:medium;margin-bottom:0px;margin-top:4ex}
    li,h3 {font-weight:bold}
    pre {margin-top:0px}
    </style>
    <title>Daily Operations Status Report</title>
    </head>
    <body>

    <H1>Daily Operations Status Report</H1>
    <H2>Critical Application Cycle End Times</H2>
    <xsl:apply-templates select="MSR/Info"/>

    </body>
    </html>
    </xsl:template>

    <xsl:template match="Info">

    <xsl:if test="(BT30004 !='') or (LASTISA !='')">
    <h3>Critical Path Insurance/ISA</h3>
    <xsl:apply-templates select="BT30004"/>
    <xsl:apply-templates select="LASTISA"/>
    </xsl:if>

    <xsl:if test="(SSEC !='') or (SIVU !='')">
    <h3>Securities</h3>
    <xsl:apply-templates select="SSEC"/>
    <xsl:apply-templates select="SIVU"/>
    </xsl:if>

    <xsl:if test="(CM10009 !='') or (ES00014 !='')">
    <h3>Commissions</h3>
    <xsl:apply-templates select="CM10009"/>
    <xsl:apply-templates select="ES00014"/>
    </xsl:if>

    <xsl:if test="(LASTSRDY !='') or (LASTSRM1 !='') or (LASTSRM2 !='')">
    <h3>Sales</h3>
    <xsl:apply-templates select="LASTSRDY"/>
    <xsl:apply-templates select="LASTSRM1"/>
    <xsl:apply-templates select="LASTSRM2"/>
    </xsl:if>

    <xsl:if test="(TNC !='') or (IPI !='') or (RPI !='') or (CMHM !='')">
    <h3>EBIS/TNC</h3>
    <xsl:apply-templates select="TNC"/>
    <xsl:apply-templates select="IPI"/>
    <xsl:apply-templates select="RPI"/>
    <xsl:apply-templates select="CMHM"/>
    </xsl:if>

    <xsl:apply-templates select="MVS"/>
    <xsl:apply-templates select="AutoSys"/>

    </xsl:template>

    <xsl:template match="BT30004[. != '']">
    <li>Insurance DataBase ended at: <xsl:value-of select="." /></li>
    </xsl:template>
    <xsl:template match="LASTISA[. != '']">
    <li>ISA DataBase ended at: <xsl:value-of select="." /></li>
    </xsl:template>
    <xsl:template match="SSEC[. != '']">
    <li>Securities System Extract Cycle (2:30 AM SLA)
    ended at: <xsl:value-of select="." /></li>
    </xsl:template>
    <xsl:template match="SIVU[. != '']">
    <li>Securities Investment Warehouse Update (6 AM
    SLA) ended at: <xsl:value-of select="." /></li>
    </xsl:template>
    <xsl:template match="CM10009[. != '']">
    <li>Daily Commissions ended at: <xsl:value-of select="." /></li>
    </xsl:template>
    <xsl:template match="ES00014[. != '']">
    <li>Semi-Monthly Commissions ended at: <xsl:value-of select="." /></li>
    </xsl:template>
    <xsl:template match="LASTSRDY[. != '']">
    <li>Daily Sales Reporting Cycle ended at: <xsl:value-of select="."/></li>
    </xsl:template>
    <xsl:template match="LASTSRM1[. != '']">
    <li>MonthEnd Sales Day1 (Running) or (LASTSRM1) ended at: <xsl:value-of
    select="."/></li>
    </xsl:template>
    <xsl:template match="LASTSRM2[. != '']">
    <li>MonthEnd Sales Day2 (Running) or (LASTSRM2) ended at: <xsl:value-of
    select="."/></li>
    </xsl:template>
    <xsl:template match="TNC[. != '']">
    <li>TNC/Client Information (7am SLA) ended at: <xsl:value-of
    select="."/></li>
    </xsl:template>
    <xsl:template match="IPI[. != '']">
    <li>Investment Product Information (8am SLA) ended at: <xsl:value-of
    select="."/></li>
    </xsl:template>
    <xsl:template match="RPI[. != '']">
    <li>Risk Product Information (7am SLA) ended at: <xsl:value-of
    select="."/></li>
    </xsl:template>
    <xsl:template match="CMHM[. != '']">
    <li>Contact Management Historical Mart ended at: <xsl:value-of
    select="."/></li>
    </xsl:template>
    <xsl:template match="MVS[. != '']">
    <h3>MVS JobsTabled</h3><pre><xsl:value-of select="."/></pre>
    </xsl:template>
    <xsl:template match="AutoSys[. != '']">
    <h3>AutoSys Jobs Tabled</h3><pre><xsl:value-of select="."/></pre>
    </xsl:template>

    <xsl:template match="*"/>

    </xsl:stylesheet>

    regards,

    --
    Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041)
    Ceterum censeo XML omnibus esse utendum
    Joris Gillis, Oct 17, 2004
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Luke Airig
    Replies:
    0
    Views:
    565
    Luke Airig
    Dec 23, 2003
  2. =?Utf-8?B?RGFpc3k=?=
    Replies:
    0
    Views:
    746
    =?Utf-8?B?RGFpc3k=?=
    Aug 23, 2007
  3. David Ainley
    Replies:
    3
    Views:
    151
    Jesús Gabriel y Galán
    Aug 4, 2010
  4. Mr_Noob
    Replies:
    3
    Views:
    144
  5. Cah Sableng
    Replies:
    0
    Views:
    226
    Cah Sableng
    Apr 23, 2007
Loading...

Share This Page