LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   how to combine two xml files? (https://www.linuxquestions.org/questions/linux-newbie-8/how-to-combine-two-xml-files-4175496982/)

santosh0782 03-04-2014 05:40 AM

how to combine two xml files?
 
Hi,

i want to append File2 to the File1, could someone please help me to combine these two files?
File1:
Code:

<dataset>
<metadata>
<column name="OWNER" type="string"/>
<column name="AREA" type="string"/>
<column name="GROUP" type="string"/>
<column name="SERVICE" type="string"/>
<column name="KPI" type="string"/>
<column name="STATE" type="double"/>
<column name="LASTUPDATED" type="date"/>
<column name="DESCRIPTION" type="string"/>
<column name="SOURCE" type="string"/>
<column name="CITYPE" type="string"/>
</metadata>
<data>
<row>
 <OWNER>San Day</OWNER>
 <AREA>Helth SOLUTIONS</AREA>
 <GROUP>HEALTH</GROUP>
 <SERVICE>HEALTH CARE</SERVICE>
 <KPI>HTHTHT</KPI>
 <STATE>2.0</STATE>
 <LASTUPDATED>1393852190344</LASTUPDATED>
 <DESCRIPTION>10 #6,288,871.14</DESCRIPTION>
 <SOURCE>COC</SOURCE>
 <CITYPE>KPI</CITYPE>
</row>
<row>
 <OWNER>JAI</OWNER>
 <AREA>BUSINESS SOLUTIONS</AREA>
 <GROUP>TRANSACTION CLEARING SYSTEM</GROUP>
 <SERVICE>TRANSACTION CLEARING SYSTEM</SERVICE>
 <KPI>BLLBD201</KPI>
 <STATE>0.0</STATE>
 <LASTUPDATED>1393852210216</LASTUPDATED>
 <DESCRIPTION> Mon 03/03/14 13:10</DESCRIPTION>
 <SOURCE>COC</SOURCE>
 <CITYPE>KPI</CITYPE>
</row>
</data>
</dataset>

============================
File2:
Code:

<dataset>
<metadata>
<column name="OWNER" type="string"/>
<column name="AREA" type="string"/>
<column name="GROUP" type="string"/>
<column name="SERVICE" type="string"/>
<column name="KPI" type="string"/>
<column name="STATE" type="double"/>
<column name="LASTUPDATED" type="date"/>
<column name="DESCRIPTION" type="string"/>
<column name="SOURCE" type="string"/>
<column name="CITYPE" type="string"/>
</metadata>
<data>
<row>
 <OWNER>SSSSSS</OWNER>
 <AREA>SOLUTIONS</AREA>
 <GROUP>First</GROUP>
 <SERVICE>Last</SERVICE>
 <KPI>SLSLS</KPI>
 <STATE>0.0</STATE>
 <LASTUPDATED>1393492360782</LASTUPDATED>
 <DESCRIPTION>Job Completed Thu 27/02/14 09:12</DESCRIPTION>
 <SOURCE>COC</SOURCE>
 <CITYPE>KPI</CITYPE>
</row>
<row>
 <OWNER>ART</OWNER>
 <AREA>BUSINESS SOLUTIONS</AREA>
 <GROUP>IN</GROUP>
 <SERVICE>IN</SERVICE>
 <KPI>LILIL</KPI>
 <STATE>4.0</STATE>
 <LASTUPDATED>1393493391354</LASTUPDATED>
 <DESCRIPTION>GOOD</DESCRIPTION>
 <SOURCE>COC</SOURCE>
 <CITYPE>KPI</CITYPE>
</row>
</data>
</dataset>


s.verma 03-04-2014 06:34 AM

Problem Restatement:
Let me first clarify what I have understood.

You have files with structure as follows:

<dataset>
<metadata>
.........somemetadata...
</metadata>
<data>
<row>
..........some1....
</row>
<row>
............some2......
</row>
.
.
.
</data>
</dataset>

Now you want to join these two data like

<dataset>
<metadata>
.........common metadata ...
</metadata>
<data>
<row>
..........some1 from file1....
</row>
<row>
............some2 from file1......
</row>
<row>
...........some1 from file2.....
</row>
<row>
...........some2 from file2....
</row>
.
.
</data>
</dataset>

Now if I am correct,

then put these commands as written in a file,

Code:

cat > file << EOF
`egrep -v '<\/data>|<\/dataset>' file1`
`sed -n "/<row>/,/<\/row>/p" file2`
`echo '</data>'`
`echo '</dataset>'`
EOF

let say abc
in same directory as your file1, and file2, then run

Code:

bash abc
It will create file which would have combined data of file1 & file2

santosh0782 03-05-2014 04:46 AM

This is really very good. Thanks a lot friend :-)


All times are GMT -5. The time now is 06:06 AM.