RE: [xsl] Formatted output

Subject: RE: [xsl] Formatted output
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Fri, 27 Sep 2002 14:51:32 +0100
> But there is another hitch, I
cannot give commas to the traps. 

Each BehaviourInfo has only one Trap/Name, so when you do

<xsl:for-each select="Trap/Name">

you are only processing one name, and it is always the last.

You need to insert the comma where you are processing the BehaviorInfo
elements, i.e. in the

<xsl:for-each select="//Behaviour/BehaviourInfo">

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Satish, L. Gnanendra
> Sent: 27 September 2002 09:43
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: RE: [xsl] Formatted output
> 
> 
> Hello Mike,
>  >  I have a xml such as this (which is shown simpler):
> > 
> > <Behaviour>
> >  <BehaviourInfo ID="1">
> > 	<Trap><Name>Trap1</Name></Trap>
> >
> <Message><Name>Msg1</Name><MessageLevel>Major</MessageLevel></Message>
> >  </BehaviourInfo>
> >  <BehaviourInfo ID="2">
> > 	<Trap><Name>Trap2</Name></Trap>
> >
> <Message><Name>Msg1</Name><MessageLevel>Minor</MessageLevel></Message>
> >  </BehaviourInfo>
> >  <BehaviourInfo ID="3">
> > 	<Trap><Name>Trap3</Name></Trap>
> >
> <Message><Name>Msg2</Name><MessageLevel>Cleared</MessageLevel>
> </Message>
> >  </BehaviourInfo>
> >  <BehaviourInfo ID="4">
> > 	<Trap><Name>Trap4</Name></Trap>
> >
> <Message><Name>Msg1</Name><MessageLevel>Critical</MessageLevel
> ></Message>
> >  </BehaviourInfo>
> > </Behaviour>
> 
> Also there is a seperate block,
> <Message>
> <MessageInfo ID="1">
> <Name>Msg1</Name>
> </MessageInfo>
> <MessageInfo ID="2">
> <Name>Msg2</Name>
> </MessageInfo>
> <MessageInfo ID="3">
> <Name>Msg3</Name>
> </MessageInfo>
> <Message>
> 
> > 
> > I would like an HTML output like:
> > "An alarm message is triggered by the traps 'trap1, trap2, 
> > trap4' and will be cleared when the trap 'trap3' comes in."
> 
> I have just given u an hypothetical example. The trap 
> positions might vary
> and also there are no fixed number of traps.
> But I have solved it by using two template calls - one for 
> the triggering
> alarms and another for the clearing alarms. But there is 
> another hitch, I
> cannot give commas to the traps. This is called from the 
> Message template:
> 
> <xsl:template name="Call_MsgClearedBySystemFindTriggerTraps">
> <xsl:variable name="MsgName" select="Name"/>
> <xsl:for-each select="//Behaviour/BehaviourInfo">
> <xsl:variable name="BhvrMsgName"
> select="BehaviourMessages/BehaviourMessagesInfo/Name"/>
> <xsl:if test="$BhvrMsgName=$MsgName">
> <xsl:variable name="x"
> select="BehaviourMessages/BehaviourMessagesInfo/OIDInfo/Messag
> e/MessageInfo/
> MsgLevel[TextString='Cleared']"/>
> <-- !='Cleared' doesn't work -->
> <xsl:choose>
> <xsl:when test="$x">
> </xsl:when>
> <xsl:otherwise>
> <xsl:for-each select="Trap/Name">
> <B><I><xsl:value-of select="."/></I></B>
> <xsl:if test="position()&lt;last()"><xsl:value-of 
> select="$Comma"/></xsl:if>
> <-- Doesn't insert commas -->
> </xsl:for-each>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:if>
> </xsl:for-each>
> </xsl:template>
> 
> This doesn't work the way I want.
> 
> Thanx,
> Gnanendra.
> 
> -----Original Message-----
> From: Michael Kay [mailto:michael.h.kay@xxxxxxxxxxxx]
> Sent: Friday, September 27, 2002 1:49 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] Formatted output
> 
> 
> You have asked this before. You haven't explained enough about how the
> input might vary. If the only thing that can vary is the 
> content of the
> four <Name> elements, then it's trivially simple:
> 
> <html>
> <p>An alarm messge is triggered by the traps 
> '<xsl:value-of select="/Behaviour/BehaviourInfo[@ID=1]/Trap/Name"/>, 
> <xsl:value-of select="/Behaviour/BehaviourInfo[@ID=2]/Trap/Name"/>, 
> <xsl:value-of select="/Behaviour/BehaviourInfo[@ID=4]/Trap/Name"/>' 
> and will be cleared when the trap 
> '<xsl:value-of select="/Behaviour/BehaviourInfo[@ID=3]/Trap/Name"/>' 
> comes in.</p>
> </html>
> 
> If converting "Trap1" to "trap1" is an important characteristic of the
> transformation, you can do this using the substring() and translate()
> functions.
> 
> - - - - - - - Appended by Scientific-Atlanta, Inc. - - - - - - - 
> This e-mail and any attachments may contain information which is
> confidential, proprietary, privileged or otherwise protected 
> by law. The
> information is solely intended for the named addressee (or a person
> responsible for delivering it to the addressee). If you are 
> not the intended
> recipient of this message, you are not authorized to read, 
> print, retain,
> copy or disseminate this message or any part of it. If you 
> have received
> this e-mail in error, please notify the sender immediately by 
> return e-mail
> and delete it from your computer.
> 
>  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