xsl-list
[Top] [All Lists]

RE: [xsl] Output as per the filter is missing

2007-08-01 01:33:12
Thanks Michael, 
Once I use the <xsl:apply-templates> to a particular node in the
document (like <section> you have mentioned below), is it possible to
revert back to the earlier situation before applying
<xsl:apply-templates> ?

What I understand by using <xsl:apply-template> means filtering the
nodes in XML document four output?

Regards.

-----Original Message-----
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com] 
Sent: Wednesday, August 01, 2007 1:33 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Output as per the filter is missing 

In XSLT 1.0, if you do <xsl:value-of select="xxx"> and xxx selects more
than one node, only the first node in the set is output. To iterate over
several nodes, use xsl:for-each or (better) xsl:apply-templates.

You are doing <xsl:for-each select="section">, but that's rather
pointless because there is only one section.

At this stage of the game, it's much better to get into the habit of
using apply-templates. Write a template rule for each element saying
what you want done with it, for example

<xsl:template match="para">
  <xsl:apply-templates/>
</xsl:template> 

<xsl:template match="section">
  <xsl:apply-templates/>
</xsl:template> 

<xsl:template match="message[(_at_)priority='warn']">
  <p><xsl:value-of select="."/></p>
</xsl:template> 

<xsl:template match="message[(_at_)priority='info']">
  <xsl:comment><xsl:value-of select="."/></xsl:comment> </xsl:template> 

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Sharma, Jaikumar [mailto:jaikumar(_dot_)sharma(_at_)barco(_dot_)com]
Sent: 01 August 2007 08:44
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Output as per the filter is missing

Hi All,

I have the following XML document and XSL stylesheet.

Problem : When I try to render the XML document in HTML using browser.
It gives me the following output, but does not list all the warning 
messages as per the filter in XSL stylesheet, it only list the first 
warning message.

Output :
___________________________
Test Page

warn message 1
____________________________


XML document :
__________________________________________________________
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?> <docroot>
   <mydocument>
     <para>     
        <section>
             <message priority="warn">warn message 1</message>
             <message priority="warn">warn message 2</message>
             <message priority="info">info message 1</message>
             <message priority="info">info message 2</message>
             <message priority="info">info message 3</message>

        </section>
     </para>
   </mydocument>
</docroot>
__________________________________________________________

XSL stylesheet :

_________________________________________________________
<?xml version="1.0"?>
  <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output method="html" indent="yes" />

  <xsl:template match="/">   
    <html>
      <head><p><b>Test Page</b></p></head>
       <body>
         <xsl:apply-templates select="docroot/mydocument/para"/>
       </body>
    </html>
  </xsl:template>
  
   <xsl:template match="*">
    <xsl:for-each select="section">
          <xsl:value-of select="message[(_at_)priority='warn']"/>
    </xsl:for-each> 
   </xsl:template>

 </xsl:stylesheet>   

_______________________________________________________


I am Newbie to XSL, does somebody know which step I am missing here ?

Thanks.


DISCLAIMER:
Unless indicated otherwise, the information contained in this message 
is privileged and confidential, and is intended only for the use of 
the addressee(s) named above and others who have been specifically 
authorized to receive it. If you are not the intended recipient, you 
are hereby notified that any dissemination, distribution or copying of

this message and/or attachments is strictly prohibited. The company 
accepts no liability for any damage caused by any virus transmitted by

this email. Furthermore, the company does not warrant a proper and 
complete transmission of this information, nor does it accept 
liability for any delays. If you have received this message in error, 
please contact the sender and delete the message. Thank you.

--~------------------------------------------------------------------
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>
--~--



DISCLAIMER:
Unless indicated otherwise, the information contained in this message is 
privileged and confidential, and is intended only for the use of the 
addressee(s) named above and others who have been specifically authorized to 
receive it. If you are not the intended recipient, you are hereby notified that 
any dissemination, distribution or copying of this message and/or attachments 
is strictly prohibited. The company accepts no liability for any damage caused 
by any virus transmitted by this email. Furthermore, the company does not 
warrant a proper and complete transmission of this information, nor does it 
accept liability for any delays. If you have received this message in error, 
please contact the sender and delete the message. Thank you.

--~------------------------------------------------------------------
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>