Click here to Skip to main content
15,914,905 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All,

I have xml as below :

<PDB>
  <PRODUCER>
    <FIRM>
      <ENTITY_BIOGRAPHIC>
        <ADDRESSES>
          <STATE name="AK">
            <ADDRESS branch_id="41027004">
              <DATE_UPDATED>11/08/2013</DATE_UPDATED>
              <COUNTRY>U.S.A.</COUNTRY>
            </ADDRESS>
           </STATE>
 <STATE name="AL">
            <ADDRESS branch_id="41027005">
              <DATE_UPDATED>11/08/2015</DATE_UPDATED>
              <COUNTRY>U.S.A.</COUNTRY>
            </ADDRESS>
           </STATE>
      </ADDRESSES>
 <CONTACT_INFOS>
          <STATE name="AK">
            <CONTACT_INFO branch_id="41027004">
              <BUSINESS_PHONE>206-448-9400</BUSINESS_PHONE>
              <BUSINESS_PHONE_UPDATE_DATE>06/08/2015</BUSINESS_PHONE_UPDATE_DATE
            </CONTACT_INFO>
          </STATE>
<STATE name="AK">
            <CONTACT_INFO branch_id="41027005">
              <BUSINESS_PHONE>206-448-9400</BUSINESS_PHONE>
              <BUSINESS_PHONE_UPDATE_DATE>06/08/2015</BUSINESS_PHONE_UPDATE_DATE
            </CONTACT_INFO>
          </STATE>
</CONTACT_INFOS>
<ENTITY_BIOGRAPHIC>
</FIRM>
</PRODUCER>
</PDB>


If the branch_id of <ADDRESS> node under <ADDRESSES> node  for a State is equal to branch_id of <ADDRESS> node under <CONTACT_INFOS> 
then all the child nodes of same state of <CONTACT_INFOS> should become child nodes of <ADDRESS> nodes of a state under  <ADDRESSES> nodes.
The output should be as below:


<PDB>
  <PRODUCER>
    <FIRM>
      <ENTITY_BIOGRAPHIC>
        <ADDRESSES>
          <STATE name="AK">
            <ADDRESS branch_id="41027004">
              <DATE_UPDATED>11/08/2013</DATE_UPDATED>
              <COUNTRY>U.S.A.</COUNTRY>
              <BUSINESS_PHONE>206-448-9400</BUSINESS_PHONE>
              <BUSINESS_PHONE_UPDATE_DATE>06/08/2015</BUSINESS_PHONE_UPDATE_DATE
            </ADDRESS>
           </STATE>
           <STATE name="AL">
            <ADDRESS branch_id="41027005">
              <DATE_UPDATED>11/08/2015</DATE_UPDATED>
              <COUNTRY>U.S.A.</COUNTRY> <BUSINESS_PHONE>206-448-9400</BUSINESS_PHONE>
              <BUSINESS_PHONE_UPDATE_DATE>06/08/2015</BUSINESS_PHONE_UPDATE_DATE
            </ADDRESS>
           </STATE>
      </ADDRESSES>
<ENTITY_BIOGRAPHIC>
</FIRM>
</PRODUCER>
</PDB>


What I have tried:

I am able to remove and added new nodes but unable to merge node on the basis of branch_id.

Please help me.
Posted
Updated 21-Sep-16 20:39pm
v2
Comments
Maciej Los 22-Sep-16 15:24pm    
Well...
1) Your xml is not well formed!
a) A </BUSINESS_PHONE_UPDATE_DATE node doesn't contain ending >,
b) A <ENTITY_BIOGRAPHIC> doesn't have equivalent ending tag.
2) Finall result does not correspond to xml data: adresses (AK and AL) => contact_info(AK only).
Please, review your question and update it.

Seems, a condition for joing data is: Addresses->State->name == Contact_infos->State->name &&
Address->branch_id == Contact_info->branch_id

Am i right?
Mohd Wasif 23-Sep-16 5:23am    
Yes correct

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900