xsl-list
[Top] [All Lists]

Re: [xsl] Writing array elements based on a an evaluation of one of the child elements

2006-05-24 06:00:19
There are several occurences of ACCOUNT-LIST each with the same 3 child 
elements.
The first child element in any occurence of ACCOUNT-LIST is ACCOUNT-NO
Should this ACCOUNT-NO element have no value (which I am trying to determine by 
assesing the string-length of ACCOUNT-NO/text()) then I do not want to write 
the entire ACCOUNT-LIST element for the specific occurence.
 
therefore looking at the example below, I want to only have the first 2 
occurences of the ACCOUNT-LIST appear in my result
 
XML I Get ...
 
<?xml version="1.0" encoding="UTF-8"?>
<Get_AccountNumber_List>
   <CLIENT_CODE6>BABICK 001</CLIENT_CODE6>
<ACCOUNT-LIST>
  <ACCOUNT-NO>0000000054840004</ACCOUNT-NO>
  <SBU-CODE>2</SBU-CODE>
  <RISK_TYPE>CUR</RISK_TYPE>
</ACCOUNT-LIST>
<ACCOUNT-LIST>
  <ACCOUNT-NO>0000000710207909</ACCOUNT-NO>
  <SBU-CODE>2</SBU-CODE>
  <RISK_TYPE>CMS</RISK_TYPE>
</ACCOUNT-LIST>
<ACCOUNT-LIST>
   <ACCOUNT-NO></ACCOUNT-NO>
   <SBU-CODE></SBU-CODE>
   <RISK_TYPE></RISK_TYPE>
</ACCOUNT-LIST>
</Get_AccountNumber_List>
 
XML I WANT...
 
<?xml version="1.0" encoding="UTF-8"?>
<Get_AccountNumber_List>
   <CLIENT_CODE6>BABICK 001</CLIENT_CODE6>
<ACCOUNT-LIST>
  <ACCOUNT-NO>0000000054840004</ACCOUNT-NO>
  <SBU-CODE>2</SBU-CODE>
  <RISK_TYPE>CUR</RISK_TYPE>
</ACCOUNT-LIST>
<ACCOUNT-LIST>
  <ACCOUNT-NO>0000000710207909</ACCOUNT-NO>
  <SBU-CODE>2</SBU-CODE>
  <RISK_TYPE>CMS</RISK_TYPE>
</ACCOUNT-LIST>
</Get_AccountNumber_List>


----- Original Message ----
From: Jon Gorman <jonathan(_dot_)gorman(_at_)gmail(_dot_)com>
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Sent: Wednesday, 24 May, 2006 2:50:41 PM
Subject: Re: [xsl] Writing array elements based on a an evaluation of one of 
the child elements


The result I get is that it writes all the data for all account-LIST elements 
with no tages (excepts the ACCOUNT-LIST parent element tag) and it does not 
evaluate the string-length test


Accck.  It does evaluate the string-length test, as I've already
mentioned.  It includes at least once character (newline).  And every
account-list does have tags in your example.  (They're empty elements
though).

Ok, what are you asking?  I'm getting a little confused looking at all
your emails.

1) Do you want to eleminate Account-Lists that don't have elements
that have any value?

solution:

<xsl:template match="ACCOUNT_LISTS">
<xsl:if test="normalize-space(.)">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:if>


2) Or is it the case that the Account-No might be empty even with
other data in the Account-Lists field?  Because we can't tell from
your example

<xsl:template match="ACCOUNT_LISTS">
<xsl:if test="normalize-space(ACCOUNT_NO)">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:if>

Jon Gorman

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