Unable to extract a tag from a very long XML message


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Unable to extract a tag from a very long XML message
# 1  
Old 05-13-2009
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.

-- awk -F'[<|>]' '/<businessEventId>/{f=1}/<businessEventId>/{f=""}f{print $3}' file

-- sed -n 's/<businessEventId>\([^<]*\)<.*/\1/p' found.xml

-- awk -F '</?businessEventId>' '{print $2}' found.txt

-- awk '/<businessEventId/,/\/businessEventId/{
if(n<5)
print
if(index($0,"/businessEventId")!=0)
n++
}' found.txt

Thanks
Sapna

Last edited by Sapna_Sai; 05-14-2009 at 04:47 AM..
# 2  
Old 05-13-2009
if you have Python, and the tags occur on its own line.
Code:
#!/usr/bin/env python
import re
for line in open("file"):
    if "<businessEventId>" in line:
        print re.sub("<.*?>","",line.strip())
        break

output:
Code:
# ./test.py
13201330

# 3  
Old 05-13-2009
Code:
sed -n '/business/s/<businessEventId>\(.*\)<\/businessEventId>/\1/p'  yourfile

Edit: sry didn't see your attachment, this command will not work on one big line

new command:

Code:
sed -n '/business/s/.*<businessEventId>\(.*\)<\/businessEventId>.*/\1/p' yourfile

gives
Code:
13200223                                                                                                                                    
13200537                                                                                                                                    
10754258                                                                                                                                    
10754484                                                                                                                                    
10753984                                                                                                                                    
10808629                                                                                                                                    
11928769                                                                                                                                    
11928842                                                                                                                                    
...
...
...


Last edited by funksen; 05-13-2009 at 10:34 AM..
# 4  
Old 05-13-2009
Thanks a lot, sed command worked Smilie . I don't have python in my machine so couldn't try it.

Regards
Sapna

Last edited by Sapna_Sai; 05-13-2009 at 11:47 AM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

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

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

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

5. Shell Programming and Scripting

How to retrieve the value from XML tag whose end tag is in next line

Hi All, Find the following code: <Universal>D38x82j1JJ </Universal> I want to retrieve the value of <Universal> tag as below: Please help me. (3 Replies)
Discussion started by: mjavalkar
3 Replies

6. Shell Programming and Scripting

Extract XML message from a log file using awk

Dear all I have a log file and the content like this file name: temp.log <?xml version="1.0" encoding="cp850"?> <!DOCTYPE aaabbb SYSTEM '/dtdpath'> <aaabbb> <tranDtl> <msgId>000001</msgId> </tranDtl> ..... </aaabbb> ... ... (1 Reply)
Discussion started by: on9west
1 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

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

9. Shell Programming and Scripting

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. perl -n -e '/^<info>/ and open FH,">file".$n++;... (2 Replies)
Discussion started by: natalie23
2 Replies

10. Shell Programming and Scripting

Need to extract XML message from log

I need help to extract a following SOAP-ENV:Header XML message from the log. XML message need to be extracted: *************************** <SOAP-ENV:Header> <ServiceGatewayHeader> <SourceApplicationId>OXL</SourceApplicationId> <Version>1.0</Version> <UserId>TEST</UserId>... (4 Replies)
Discussion started by: tjshankar
4 Replies
Login or Register to Ask a Question