how to extract the info in the tag from a xml file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to extract the info in the tag from a xml file
# 1  
Old 08-05-2010
how to extract the info in the tag from a xml file

Hi All,
Do anyone of you have any idea how to extract each<info> tag to each different file. I have 1000 raw files, which come in every 15 mins.( I am using bash)
I have tried my script as below, but it took hours to finish, which is inefficiency.
Code:
perl -n -e '/^<info>/ and open FH,">file".$n++; print FH;'

My raw files is shown as below:
Code:
<info>
<bbc>sendsms</bbc>
<bbc>recsms</bbc>
<values>10</values>
<values>7</values>
</info>
<info>
<bbc>succsendsms</bbc>
<bbc>succrecsms</bbc>
<values>3</values>
<values>5</values>
</info>
<info>
<bbc>delaysendsms</bbc>
<bbc>delayrecsms</bbc>
<values>4</values>
<values>1</values>
</info>
<info>
<bbc>failsendsms</bbc>
<bbc>failrecsms</bbc>
<values>2</values>
<values>1</values>
</info>

Output that I needed:
File1
Code:
<info>
<bbc>sendsms</bbc>
<bbc>recsms</bbc>
<values>10</values>
<values>7</values>
</info>
<info>

File2
Code:
<info>
<bbc>succsendsms</bbc>
<bbc>succrecsms</bbc>
<values>3</values>
<values>5</values>
</info>

File3
Code:
<info>
<bbc>delaysendsms</bbc>
<bbc>delayrecsms</bbc>
<values>4</values>
<values>1</values>
</info>

File4
Code:
<info>
<bbc>failsendsms</bbc>
<bbc>failrecsms</bbc>
<values>3</values>
<values>5</values>
</info>

Anyone can help?

Thanks!
# 2  
Old 08-05-2010
Hi.

I'd say you were using Perl Smilie

Awk (but might take hours too):

Code:
$ awk '/<info>/ {F++} {print > "file" F}' file.xml

$ cat file1
<info>
<bbc>sendsms</bbc>
<bbc>recsms</bbc>
<values>10</values>
<values>7</values>
</info>

$ cat file2
<info>
<bbc>succsendsms</bbc>
<bbc>succrecsms</bbc>
<values>3</values>
<values>5</values>
</info>

$ cat file3
<info>
<bbc>delaysendsms</bbc>
<bbc>delayrecsms</bbc>
<values>4</values>
<values>1</values>
</info>

$ cat file4
<info>
<bbc>failsendsms</bbc>
<bbc>failrecsms</bbc>
<values>2</values>
<values>1</values>
</info>

# 3  
Old 08-05-2010
If the input file is consistently structured as you described, the following works
Code:
split -l 6 -d infile 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

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

To search for a particular tag in xml and collate all similar tag values and display them count

I want to basically do the below thing. Suppose there is a tag called object1. I want to display an output for all similar tag values under heading of Object 1 and the count of the xmls. Please help File: <xml><object1>house</object1><object2>child</object2>... (9 Replies)
Discussion started by: srkmish
9 Replies

4. Shell Programming and Scripting

Extract XML tag value from file

Hello, Hope you are doing fine. I have an log file which looks like as follows: Some junk text1 Date: Thu Mar 15 13:38:46 CDT 2012 DATA SENT SUCCESSFULL: Some jun text 2 Date: Thu Mar 15 13:38:46 CDT 2012 DATA SENT SUCCESSFULL: ... (3 Replies)
Discussion started by: srattani
3 Replies

5. Shell Programming and Scripting

Extract TAG name and XPATH from XML file via shellscript

Hi, Here is a sample xml file and expected output. I need to extract the element/tag name (not value) and xpath (sample output.txt). But the main problem is I put here one simple xml file where I can clearly see the number of elements, but in real time I have a xml file which have over 500... (18 Replies)
Discussion started by: BithunC
18 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

extract xml tag based on condition

Hi All, I have a large xml file of invoices. The file looks like below: <INVOICES> <INVOICE> <NAME>Customer A</NAME> <INVOICE_NO>1234</INVOICE_NO> </INVOICE> <INVOICE> <NAME>Customer A</NAME> <INVOICE_NO>2345</INVOICE_NO> </INVOICE> <INVOICE> <NAME>Customer A</NAME>... (9 Replies)
Discussion started by: angshuman
9 Replies

10. UNIX for Dummies Questions & Answers

Unable to extract a tag from a very long XML message

Hi I have a log file which contain XML message. I want to extract the value between the tag : <businessEventId>13201330</businessEventId> i.e., 13201330. I tried the following commands but as the message is very long, unable to do it. Attached is the log file. Please provide inputs. --... (3 Replies)
Discussion started by: Sapna_Sai
3 Replies
Login or Register to Ask a Question