Converting a flat file in XML


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting a flat file in XML
# 1  
Old 10-11-2010
Tools Converting a flat file in XML

Hello Friends,
I am new to UNIX shell scripting. Using bash....Could you please help me in converting a flat file into an XML style output file.

Flat file: (Input File entries looks like this)
Code:
John Miller: 617-569-7996:15 Bunting lane, staten Island, NY: 10/21/79: 60600

The output should look like this.
Code:
<STUDENTS>
<NAME>John Miller</NAME>
<ADDRESS>15 Bunting lane, staten Island, NY</ADDRESS>
<PHONE>617-569-7996</PHONE>
<BIRTHDATE>10/21/79</BIRTHDATE>
<SALARY>60600</SALARY>
</STUDENTS>


Last edited by radoulov; 10-11-2010 at 04:05 PM.. Reason: Code tags, please!
# 2  
Old 10-11-2010
Hi welcome to the Unix forum. Is this homework? What have you tried so far?
# 3  
Old 10-11-2010
Here is one way of doing it:
Code:
#!/bin/bash

trim()
{
    trimmed=${1}
    trimmed=${trimmed%% }
    trimmed=${trimmed## }

    echo ${trimmed}
}


IFS=":"

echo "<STUDENTS>"
while read name phone address birthdate salary
do
   echo "  <STUDENT>"
   echo "     <NAME>$(trim ${name})</NAME>"
   echo "     <ADDRESS>$(trim ${address})</ADDRESS>"
   echo "     <PHONE>$(trim ${phone})</PHONE>"
   echo "     <BIRTHDATE>$(trim ${birthdate})</BIRTHDATE>"
   echo "     <SALARY>$(trim ${salary})</SALARY>"
   echo "  </STUDENT>"
done < infile
echo "</STUDENTS>"

This produces the following output:
Code:
<STUDENTS>
  <STUDENT>
     <NAME>John Miller</NAME>
     <ADDRESS>15 Bunting lane, staten Island, NY</ADDRESS>
     <PHONE>617-569-7996</PHONE>
     <BIRTHDATE>10/21/79</BIRTHDATE>
     <SALARY>60600</SALARY>
  </STUDENT>
</STUDENTS>

This User Gave Thanks to fpmurphy For This Post:
# 4  
Old 10-11-2010
Here is another (without a trim):
Code:
xmltag(){
  printf "<%s>%s</%s>\n" "$1" "$2" "$1"
}

while IFS=: read name phone addr dob sal
do
  printf "<STUDENTS>\n"
  xmltag NAME      "$name"
  xmltag ADDRESS   "$addr"
  xmltag PHONE     "$phone"
  xmltag BIRTHDATE "$dob"
  xmltag SALARY    "$sal"
  printf "</STUDENTS>\n"
done <infile>outfile

These 2 Users Gave Thanks to Scrutinizer For This Post:
# 5  
Old 10-11-2010
Thanks I will give it shot!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Converting csv file to flat file

Hi All, I have a csv file which is comma seperated. I need to convert to flat file with preferred column length country,id Australia,1234 Africa,12399999 Expected output country id Australia 1234 Africa 12399999 the flat file should predefined length on respective... (8 Replies)
Discussion started by: rohit_shinez
8 Replies

2. Shell Programming and Scripting

Oracle table extract: all columns are not converting into pipe delimited in flat file

Hi All, I am writing a shell script to extract oracle table into a pipe dilemited flat file. Below is my code and I have attached two files that I have abled to generate so far. 1. Table.txt ==> database extract file 2. flat.txt ==> pipe delimited after some manipulation of the original db... (5 Replies)
Discussion started by: express14
5 Replies

3. Shell Programming and Scripting

[ask]xml to flat file

dear all, i need your advice, i have xml file like this input.xml <?xml version="1.0" encoding="UTF-8"?> <session xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> <capture> <atribut name="tmp_Filename" value="INTest.rbs"/> <atribut name="size_Filename" value="INTest.rbs"/>... (2 Replies)
Discussion started by: zvtral
2 Replies

4. Shell Programming and Scripting

Help with converting XML to Flat file

Hi Friends, I want to convert a XML file to flat file. Sample I/p: <?xml version='1.0' encoding='UTF-8' ?> <DataFile xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' contactCount='4999' date='2012-04-14' time='22:00:14' xsi:noNamespaceSchemaLocation='gen .xsd'> <Contact... (3 Replies)
Discussion started by: karumudi7
3 Replies

5. Shell Programming and Scripting

Reading XML data in a FLAT FILE

I have a requirement to read the xml file and split the files into two diffrent files in Unix shell script. Could anyone please help me out with this requirement. Sample file --------------- 0,<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Information... (3 Replies)
Discussion started by: kmanivan82
3 Replies

6. UNIX for Advanced & Expert Users

Converting the date format in a flat file

Hi All, I am new to this forum, could any one help me out in resolving the below issue. Input of the flat file contains several lines of text for example find below: 5022090,2,4,7154,88,,,,,4/1/2011 0:00,Z,L,2 5022090,3,1,6648,88,,,,,4/1/2011 0:00,Z,,1... (0 Replies)
Discussion started by: av_sagar
0 Replies

7. Shell Programming and Scripting

Converting Column to Rows in a Flat file

Hi, Request To guide me in writing a shell program for the following requirement: Example:if the Input File contains the follwing data Input File Data: 80723240029,12,323,443,88,98,7,98,67,87 80723240030,12,56,6,,,3,12,56,6,7,2,3,12,56,6,7,2,3,88,98,7,98,67,87... (5 Replies)
Discussion started by: srinikal
5 Replies

8. Shell Programming and Scripting

XML to flat file

Hi all, can u please help me in converting any given XML file to flat file. thanks in advance. -bali (2 Replies)
Discussion started by: balireddy_77
2 Replies

9. Shell Programming and Scripting

Converting Pivot file to flat file

I have a file in this format. P1 P2 P3......................... A001 v11 v21 v31...................... A002 v12 v22 v32............................ A003 v13 v23 v33.......................... A004 v14 v24 v34.............................. . . . A00n... (2 Replies)
Discussion started by: vskr72
2 Replies

10. UNIX for Advanced & Expert Users

XML to flat file in Unix

Hello, How can I take a file in XML format and convert it to a comma separated format? Is there any scripts or programs that can do this for Unix? I tried surfing the net for such an application, but everything seems to be for Windows OS. Any help or suggestions are greatly appreciated. ... (2 Replies)
Discussion started by: oscarr
2 Replies
Login or Register to Ask a Question