Creating multiple xml tag lines in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Creating multiple xml tag lines in a file
# 1  
Old 05-09-2014
Creating multiple xml tag lines in a file

Hi All,

Can someone tell me how can we create same xml tag lines based on the number of lines present in other file and replace the Name variable vaule present in other file.

basically I have this xml line
Code:
 <typ:RequestKey NameType="RIC" Name="A1" Service="DDA"/>

and say I have Namesfile which has 500 names/lines in it, all I need to do is read this file and create the above said xml tag by replacing the value of the Name=

ex : Namefile contains 5 lines
Code:
 A1
 A2
 A3
 A4
 A5

now, once script is run, I should the 5 xml tag lines as output ie,

Code:
 <typ:RequestKey NameType="RIC" Name="A1" Service="DDA"/>
 <typ:RequestKey NameType="RIC" Name="A2" Service="DDA"/>
 <typ:RequestKey NameType="RIC" Name="A3" Service="DDA"/>
 <typ:RequestKey NameType="RIC" Name="A4" Service="DDA"/>
 <typ:RequestKey NameType="RIC" Name="A5" Service="DDA"/>

# 2  
Old 05-09-2014
What have you tried so far?
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 05-10-2014
Thanks Don.

I tried it by myself, it simple while loop did the trick..

Many Thanks..

Code:
 #!/usr/bin/bash
 while read line
do
        #echo "Generating xml tag is :<typ:RequestKey NameType="RIC" Name="A1" Service="DDA"/>"
        echo "<typ:RequestKey NameType="RIC" Name="\"$line\"" Service="DDA"/>" >> /tmp/xmlfile
done < /tmp/xmllist

# 4  
Old 05-10-2014
In awk you could try like this

Code:
$ awk '{print "<typ:RequestKey NameType=" q "RIC" q  " Name=" q $0 q " Service=" q "DDA" q "/>"}' q='"' file

Test :
Code:
$ echo 1111 | awk '{print "<typ:RequestKey NameType=" q "RIC" q  " Name=" q $0 q " Service=" q "DDA" q "/>"}' q='"'
<typ:RequestKey NameType="RIC" Name="1111" Service="DDA"/>

# 5  
Old 05-10-2014
Quote:
Originally Posted by Optimus81
Thanks Don.

I tried it by myself, it simple while loop did the trick..

Many Thanks..

Code:
 #!/usr/bin/bash
 while read line
do
        #echo "Generating xml tag is :<typ:RequestKey NameType="RIC" Name="A1" Service="DDA"/>"
        echo "<typ:RequestKey NameType="RIC" Name="\"$line\"" Service="DDA"/>" >> /tmp/xmlfile
done < /tmp/xmllist

Thanks for sharing, Optimus. Good that you found a solution.

Some remarks:
The shebang (#!) should be in the first two positions of the script, there should not be a space in front of it, nor an empty line above it..

The quoting in the echo statement is not right (for example the variable $line is unquoted), it should be:
Code:
echo "<typ:RequestKey NameType=\"RIC\" Name=\"$line\" Service=\"DDA\"/>"

or for example:
Code:
printf '<typ:RequestKey NameType="RIC" Name="%s" Service="DDA"/>\n' "$line"

or
Code:
cat << EOF
<typ:RequestKey NameType="RIC" Name="$line" Service="DDA"/>
EOF

The second EOF should be at the first position of the line.


instead of redirecting the echo statement and repeatedly appending to a file, you could also redirect the output of the loop. So it becomes:
Code:
#!/usr/bin/bash
while read line
do
  # echo "Generating xml tag is :<typ:RequestKey NameType="RIC" Name="A1" Service="DDA"/>"
  echo "<typ:RequestKey NameType=\"RIC\" Name=\"$line\" Service=\"DDA\"/>"
done < /tmp/xmllist > /tmp/xmlfile


Last edited by Scrutinizer; 05-10-2014 at 07:18 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grepping multiple XML tag results from XML file.

I want to write a one line script that outputs the result of multiple xml tags from a XML file. For example I have a XML file which has below XML tags in the file: <EMAIL>***</EMAIL> <CUSTOMER_ID>****</CUSTOMER_ID> <BRANDID>***</BRANDID> Now I want to grep the values of all these specified... (1 Reply)
Discussion started by: shubh752
1 Replies

2. Shell Programming and Scripting

Moving XML tag/contents after specific XML tag within same file

Hi Forum. I have an XML file with the following requirement to move the <AdditionalAccountHolders> tag and its content right after the <accountHolderName> tag within the same file but I'm not sure how to accomplish this through a Unix script. Any feedback will be greatly appreciated. ... (19 Replies)
Discussion started by: pchang
19 Replies

3. Shell Programming and Scripting

Convert tag based lines to xml format

Hi All, Can some one help me to convert this line of code to xml format. Thanks in advance, preethy. input: ... (2 Replies)
Discussion started by: preethy
2 Replies

4. Shell Programming and Scripting

Using shell command need to parse multiple nested tag value of a XML file

I have this XML file - <gp> <mms>1110012</mms> <tg>988</tg> <mm>LongTime</mm> <lv> <lkid>StartEle=ONE, Desti = Motion</lkid> <kk>12</kk> </lv> <lv> <lkid>StartEle=ONE, Source = Velocity</lkid> <kk>2</kk> </lv> <lv> ... (3 Replies)
Discussion started by: NeedASolution
3 Replies

5. Shell Programming and Scripting

How can I remove some xml tag lines using shell script?

Hi All, My name is Prathyu and I am working as a ETL develper. I have one requirement to create a XML file based on the provided XSD file. As per the Datastage standards Key(repeatable) field does not contain any Null values so I am inserting some dummy tag line to that XML file. ... (14 Replies)
Discussion started by: Prathyu
14 Replies

6. Shell Programming and Scripting

How to add the multiple lines of xml tags before a particular xml tag in a file

Hi All, I'm stuck with adding multiple lines(irrespective of line number) to a file before a particular xml tag. Please help me. <A>testing_Location</A> <value>LA</value> <zone>US</zone> <B>Region</B> <value>Russia</value> <zone>Washington</zone> <C>Country</C>... (0 Replies)
Discussion started by: mjavalkar
0 Replies

7. Shell Programming and Scripting

Extract multiple xml tag value into CSV format

Hi All, Need your assistance on another xml tag related issue. I have a xml file as below: <INVOICES> <INVOICE> <BILL> <BILL_NO>1234</BILL_NO> <BILL_DATE>01 JAN 2011</BILL_DATE> </BILL> <NAMEINFO> <NAME>ABC</NAME> </NAMEINFO> </INVOICE> <INVOICE> <BILL> <BILL_NO>5678</BILL_NO>... (12 Replies)
Discussion started by: angshuman
12 Replies

8. Shell Programming and Scripting

XML tag replacement from different XML file

We have 2 XML file 1. ORIGINAL.xml file and 2. ATTRIBUTE.xml files, In the ORIGINAL.xml we need some modification as <resourceCode>431048</resourceCode>under <item type="Manufactured"> tag - we need to grab the 431048 value from tag and pass it to database table in unix shell script to find the... (0 Replies)
Discussion started by: balrajg
0 Replies

9. Shell Programming and Scripting

How to remove some xml tag lines using shell script

I have existing XML file as below, now based on input string in shell script on workordercode i need to create a seprate xml file for e.g if we pass the input string as 184851 then it find the tag data from <workOrder>..</workOrder> and write to a new file and similarly next time if i pass the... (3 Replies)
Discussion started by: balrajg
3 Replies

10. Shell Programming and Scripting

getting multiple xml tag

sorry for the trouble...... i have this file that contains the following: 00:00:21 Queue key, Queue Name= 00:00:21 Sending Message :<EXGC-EXGU xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <trans_id>EXGC</trans_id> <sys_prefix>GSYS</sys_prefix> ... (3 Replies)
Discussion started by: forevercalz
3 Replies
Login or Register to Ask a Question