xsl-list
[Top] [All Lists]

Re: [xsl] removing nodes to parent based on all child nodes not having text value

2008-12-05 10:33:36
Thank you all so much for your help.  The example data was not correct as you 
pointed out.  The input and desired output should have been as follows:

Input

<Registration>
     <UserName>DID1901</UserName>
     <ActivityType>25</ActivityType>
     <ActivityDate>2008-10-30T12:10:26</ActivityDate>
     <RegistrationCounty>19</RegistrationCounty>
     <Registrants>
          <Registrant>
               <Entity>
                    <Individual>
                         <Prefix/>
                         <FirstName/>
                         <LastName/>
                         <Middle/>
                         <Suffix/>
                    </Individual>
                    <Business>
                         <MailingAddress>
                               <Address>
                                    <MailingAddressType/>
                                    <MailingAddressLine1>123 
Street</MailingAddressLine1>
                                    <MailingAddressLine2/>
                               </Address>
                         </MailingAddress>
                    </Business>
               </Entity>
          </Registrant>
     </Registrants>
</Registration>



Output

<Registration>
     <UserName>DID1901</UserName>
     <ActivityType>25</ActivityType>
     <ActivityDate>2008-10-30T12:10:26</ActivityDate>
     <RegistrationCounty>19</RegistrationCounty>
     <Registrants>
          <Registrant>
               <Entity>
                    <Business>
                         <MailingAddress>
                               <Address>
                                    <MailingAddressType/>
                                    <MailingAddressLine1>123 
Street</MailingAddressLine1>
                                    <MailingAddressLine2/>
                               </Address>
                         </MailingAddress>
                    </Business>
               </Entity>
          </Registrant>
     </Registrants>
</Registration>


In this case there only needs to be either <Individual> or <Business> under 
<Entity>.  Either the registration is for an individual or business. Both 
should not exist in the same file.  Because the business registration 
information is being pulled from a legacy system certain information required 
in the XML may not be available, such as <MailingAddressType/> and 
<MailingAddressLine2/> as in the preceding example.  However, if any descendant 
element of a child has a text value such as <MailingAddressLine1>123 
Street</MailingAddressLine1> it's parent and siblings all need to be copied 
even if those siblings have no text value the nodes need to be copied.  If no 
descendant elements have a text value as is the case with <Individual> that 
node and all descendant nodes of that element need to be stripped out.  Wow, I 
hope that wasn't too confusing.

All the templates I have used thus far will strip out any element with no text 
value, which removes the needed (dare I say required) elements of 
<MailingAddressType/> and <MailingAddressLine2/> under the <Address> element.


I really appreciate all the help!!!



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