Insert a new line between the XML tags?.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Insert a new line between the XML tags?.
# 1  
Old 11-25-2012
Insert a new line between the XML tags?.

Code:
<TestLog>
<TriggerAPI>
<StartDate>Nov 16, 2012 6:34:02 AM com.satttest01.Response() </StartDate>
<RequestType>SUCCESS: Send :</RequestType>
        <TranNumber>5210203</TranNumber>
        <TranId>8585319731207148</TranId>
</TriggerAPI>
<TriggerAPI>
<StartDate>Nov 16, 2012 6:34:02 AM com.satttest01.Response() </StartDate>
<RequestType>FAILED: Receive :</RequestType>
        <TranNumber>5210203</TranNumber>
        <TranId>8585319731207148</TranId>
</TriggerAPI>
</TestLog>

Expected output

Code:
<TestLog>
<TriggerAPI>
<StartDate>Nov 16, 2012 6:34:02 AM</StartDate>
<RequestType>Send :</RequestType>
        <Status>SUCCESS</Status>
        <TranNumber>5210203</TranNumber>
        <TranId>8585319731207148</TranId>
</TriggerAPI>
<TriggerAPI>
<StartDate>Nov 16, 2012 6:34:02 AM</StartDate>
<RequestType>Receive :</RequestType>
        <Status>FAILED</Status>
        <TranNumber>5210203</TranNumber>
        <TranId>8585319731207148</TranId>
</TriggerAPI>
</TestLog>

Split a element into another element within xml.
can anyone suggest me?.

Last edited by Scrutinizer; 11-25-2012 at 03:33 PM.. Reason: icode to code tags
# 2  
Old 11-25-2012
Code:
awk -F'[<|>]' ' {
 if($0 ~ /RequestType/)
 {
  split($3,arr," ");
  gsub(/(SUCCESS: |FAILED: )/,"",$0);
  print;
  printf "%s\n","<Status>"arr[1]"</Status>";
 }
 else print;
} ' xml_file

This User Gave Thanks to Yoda For This Post:
# 3  
Old 11-25-2012
Thank you it is working now. Could you please explain that what this code is doing?.
# 4  
Old 11-25-2012
Code:
awk -F'[<|>]' ' {                              # Specifying field separator.
 if($0 ~ /RequestType/)                        # Checking if line has string RequestType
 {
  split($3,arr," ");                           # Split tag values and get them into array considering space as field separator.
  gsub(/(SUCCESS: |FAILED: )/,"",$0);          # Replacing string SUCCESS: or FAILED: from line.
  print;                                       # print whole line.
  printf "%s\n","<Status>"arr[1]"</Status>";   # print next line using 1st array element as tag value.
 }
 else print;                                   # print whole line.
} ' xml_file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to pull multiple XML tags from the same XML file in Shell.?

I'm searching for the names of a TV show in the XML file I've attached at the end of this post. What I'm trying to do now is pull out/list the data from each of the <SeriesName> tags throughout the document. Currently, I'm only able to get data the first instance of that XML field using the... (9 Replies)
Discussion started by: hungryd
9 Replies

2. Shell Programming and Scripting

Cutting all xml tags out of a line

I would like search and find a word (easily identified by 'key') from an xml file and then cut all of the tags out of the resulting line (anything between a < and a >) and display the remaining material. I am running Debian and mksh shell. dictionary.sh: #!/bin/sh key='key="'$1'"><form'... (3 Replies)
Discussion started by: bedtime
3 Replies

3. Shell Programming and Scripting

How to insert new line in xml?

I have an xml like below and wanted to insert a new line between end of the tag and start of the new tag. <partyaddress><addressline1>gandhi stree</addressline1><city>hyderbad</city><state>AP</state><addressline1>xyz stree</addressline1><city>bangalore</city><state>Karnataka</state>... (6 Replies)
Discussion started by: D_Sethi
6 Replies

4. Shell Programming and Scripting

Insert a newline in XML

Hi guys, I got a requirement that ... (5 Replies)
Discussion started by: mohanalakshmi
5 Replies

5. Shell Programming and Scripting

How to add Xml tags to an existing xml using shell or awk?

Hi , I have a below xml: <ns:Body> <ns:result> <Date Month="June" Day="Monday:/> </ns:result> </ns:Body> i have a lookup abc.txtt text file with below details Month June July August Day Monday Tuesday Wednesday I need a output xml with below tags <ns:Body> <ns:result>... (2 Replies)
Discussion started by: Nevergivup
2 Replies

6. Shell Programming and Scripting

Shell Command to compare two xml lines while ignoring xml tags

I've got two different files and want to compare them. File 1 : HTML Code: <response ticketId="944" type="getQueryResults"><status>COMPLETE</status><description>Query results fetched successfully</description><recordSet totalCount="1" type="sms_records"><record... (1 Reply)
Discussion started by: Shaishav Shah
1 Replies

7. Shell Programming and Scripting

Insert a new subnode in a xml file

Hi, i have an xml file and i want to edit a new sub node in a file like val="<activity android:label="@string/app_name" android_name=".MainActivity1" android:launchMode="singleTask" android:screenOrientation="portrait" ... (1 Reply)
Discussion started by: gautamshrm3
1 Replies

8. Shell Programming and Scripting

Insert value of env variable in xml file

Hello, I have the following variables set in my env echo $MY_XSD_FILE /home/jak/sample.xsd echo $MY_INTERVAL_VALUE 4 I want to insert them between the xml tags in my xml file cat sample.xml ::::::::::::::: ::::::::::::::: <property name="FILE"></property> :::::::::::::::::::::::... (2 Replies)
Discussion started by: jakSun8
2 Replies

9. 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

10. Shell Programming and Scripting

Closing XML tags in one line

Any one can help Example having an spml output as below (the complete one has more than 10000 tags): ============= <ts11> <msisdn>123</msisdn> <bcieID>TELEPHON</bcieID> </ts11> <ts21> <msisdn>987</msisdn> </ts21> ... ======= I want to have every tag closed in one line ... (10 Replies)
Discussion started by: hafidiw
10 Replies
Login or Register to Ask a Question