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

Subject: Re: [xsl] removing nodes to parent based on all child nodes not having text value
From: "Cindy Lard" <Cindy.Lard@xxxxxxxxxxx>
Date: Fri, 05 Dec 2008 09:32:19 -0600
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!!!

Current Thread