I am new to XSLT and I am trying to clean up an XML file built from a mainframe
generated text file that contains all possible elements for all nodes. In the
new XML I only need to copy the nodes that actually have elements that have
text values. Is there a way to test the deepest child of an element for text
value and then copy all it's ancestors back to the root? For example, in the
attached input under the element <Entity> only <Individual> or <Business>
should exist and not both. If any child elements have text value for the
element <Individual> all child nodes should be copied, while the <Business>
element and all it's child nodes should not be copied to the new XML file. See
example input and output files.
Input
<Registration>
<UserName>DID1901</UserName>
<ActivityType>25</ActivityType>
<ActivityDate>2008-10-30T12:10:26</ActivityDate>
<RegistrationCounty>19</RegistrationCounty>
<Registrants>
<Registrant>
<Entity>
<Individual>
<Prefix/>
<FirstName></FirstName>/>
<LastName></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>
<Individual>
<Prefix/>
<FirstName>Joe</FirstName>/>
<LastName>Doe</LastName>/>
<Middle/>
<Suffix/>
</Individual>
</Entity>
</Registrant>
</Registrants>
</Registration>
--~------------------------------------------------------------------
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>
--~--