Visit Our UNIX and Linux User Community


extract specific data from xml format file.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting extract specific data from xml format file.
# 1  
Old 01-15-2008
extract specific data from xml format file.

Hi,

I need to extract the start time value (bold, red font) under the '<LogEvent ID="Timer Start">' tag (black bold) from a file with the following pattern. There are other LogEventIDs listed in the file as well, making it harder for me to extract out the specific start time that I need.

.
.
.
</LogEvent>
<LogEvent ID="Timer Start">
<LogEventProperty Name="Event Type" ID="Event Type"><![CDATA[Timer Start]]></LogEventProperty>
<LogEventProperty Name="Start Date" ID="Start Date"><![CDATA[12/13/2007]]></LogEventProperty>
<LogEventProperty Name="Start Time" ID="Start Time"><![CDATA[19:04:52]]></LogEventProperty>
<LogEventProperty Name="End Date" ID="End Date"><![CDATA[12/13/2007]]></LogEventProperty>
<LogEventProperty Name="End Time" ID="End Time"><![CDATA[19:04:52]]></LogEventProperty>
<LogEventProperty Name="Result" ID="Result"><![CDATA[ ]]></LogEventProperty>
<LogEventProperty Name="Failure Reason" ID="Failure Reason"><![CDATA[ ]]></LogEventProperty>
<LogEventProperty Name="Failure Description" ID="Failure Description"></LogEventProperty>
<LogEventProperty Name="Virtual Tester Command ID" ID="Virtual Tester Command ID"><![CDATA[SUBMIT MESSAGES1RCF/MH541/10JUL0700/FRA/]]></LogEventProperty>
<LogEventProperty Name="Virtual Tester First Time Stamp" ID="Virtual Tester First Time Stamp"><![CDATA[74718]]></LogEventProperty>
<LogEventProperty Name="Virtual Tester Line Number" ID="Virtual Tester Line Number"><![CDATA[1084]]></LogEventProperty>
<LogEventProperty Name="Operating System" ID="Operating System"><![CDATA[Windows]]></LogEventProperty>
<LogEventProperty Name="OS Version" ID="OS Version"><![CDATA[2003]]></LogEventProperty>
<LogEventProperty Name="Processor" ID="Processor"><![CDATA[Pentium]]></LogEventProperty>
<LogEventProperty Name="Display Resolution" ID="Display Resolution"><![CDATA[1024x768]]></LogEventProperty>
<LogEventProperty Name="Display Color Bits" ID="Display Color Bits"><![CDATA[32]]></LogEventProperty>
<LogEventProperty Name="OS Service Pack" ID="OS Service Pack"><![CDATA[Service Pack 1]]></LogEventProperty>
<LogEventProperty Name="Memory Size" ID="Memory Size"><![CDATA[2048]]></LogEventProperty>
<LogEventProperty Name="Processor Number" ID="Processor Number"><![CDATA[4]]></LogEventProperty>
</LogEvent>

<LogEvent ID="Emulation Command">
<LogEventProperty Name="Event Type" ID="Event Type"><![CDATA[Emulation Command]]></LogEventProperty>
<LogEventProperty Name="Start Date" ID="Start Date"><![CDATA[12/13/2007]]></LogEventProperty>
<LogEventProperty Name="Start Time" ID="Start Time"><![CDATA[19:04:54]]></LogEventProperty>
<LogEventProperty Name="End Date" ID="End Date"><![CDATA[12/13/2007]]></LogEventProperty>
<LogEventProperty Name="End Time" ID="End Time"><![CDATA[19:04:54]]></LogEventProperty>
<LogEventProperty Name="Result" ID="Result"><![CDATA[Pass]]></LogEventProperty>
<LogEventProperty Name="Failure Reason" ID="Failure Reason"><![CDATA[ ]]></LogEventProperty>
<LogEventProperty Name="Failure Description" ID="Failure Description"></LogEventProperty>
<LogEventProperty Name="Virtual Tester Command ID" ID="Virtual Tester Command ID"><![CDATA[FSUBase~064]]></LogEventProperty>
<LogEventProperty Name="Virtual Tester First Time Stamp" ID="Virtual Tester First Time Stamp"><![CDATA[76093]]></LogEventProperty>
<LogEventProperty Name="Virtual Tester Last Time Stamp" ID="Virtual Tester Last Time Stamp"><![CDATA[76109]]></LogEventProperty>
<LogEventProperty Name="Virtual Tester Line Number" ID="Virtual Tester Line Number"><![CDATA[1088]]></LogEventProperty>
<LogEventProperty Name="Operating System" ID="Operating System"><![CDATA[Windows]]></LogEventProperty>
<LogEventProperty Name="OS Version" ID="OS Version"><![CDATA[2003]]></LogEventProperty>
<LogEventProperty Name="Processor" ID="Processor"><![CDATA[Pentium]]></LogEventProperty>
<LogEventProperty Name="Display Resolution" ID="Display Resolution"><![CDATA[1024x768]]></LogEventProperty>
<LogEventProperty Name="Display Color Bits" ID="Display Color Bits"><![CDATA[32]]></LogEventProperty>
<LogEventProperty Name="OS Service Pack" ID="OS Service Pack"><![CDATA[Service Pack 1]]></LogEventProperty>
<LogEventProperty Name="Memory Size" ID="Memory Size"><![CDATA[2048]]></LogEventProperty>
<LogEventProperty Name="Processor Number" ID="Processor Number"><![CDATA[4]]></LogEventProperty>
</LogEvent>
<LogEvent ID="Env Variable Change">
<LogEventProperty Name="Event Type" ID="Event Type"><![CDATA[Env Variable Change]]></LogEventProperty>
.
.
.


I am currently trying to do it using commands like awk, sed and grep.. but since time is running out (and am not really good in scripting), I appreciate any help offered for me to complete this task.

Thanks in advance.
# 2  
Old 01-15-2008
Some points to add..

There are 3 other Log Event IDs that contains the word 'Start':

[root@sysh /home/share/gfsu]# more firstRun1_1905_131207.rtpar |grep "LogEvent ID" | grep Start | more
<LogEvent ID="Suite Start">
<LogEvent ID="User Start">
<LogEvent ID="Script Start">
<LogEvent ID="Timer Start">

Last edited by 60doses; 01-15-2008 at 05:50 AM..
# 3  
Old 01-15-2008
Uhmm.. forgot another thing.. I will only need to take the start time if the status is 'send messages', and not 'submit messages'.

Here's another portion from the file:

<LogEvent ID="Timer Start">
<LogEventProperty Name="Event Type" ID="Event Type"><![CDATA[Timer Start]]></LogEventProperty>
<LogEventProperty Name="Start Date" ID="Start Date"><![CDATA[12/13/2007]]></LogEventProperty>
<LogEventProperty Name="Start Time" ID="Start Time"><![CDATA[19:04:46]]></LogEventProperty>
<LogEventProperty Name="End Date" ID="End Date"><![CDATA[12/13/2007]]></LogEventProperty>
<LogEventProperty Name="End Time" ID="End Time"><![CDATA[19:04:46]]></LogEventProperty>
<LogEventProperty Name="Result" ID="Result"><![CDATA[ ]]></LogEventProperty>
<LogEventProperty Name="Failure Reason" ID="Failure Reason"><![CDATA[ ]]></LogEventProperty>
<LogEventProperty Name="Failure Description" ID="Failure Description"></LogEventProperty>
<LogEventProperty Name="Virtual Tester Command ID" ID="Virtual Tester Command ID"><![CDATA[send messagesRCF/MH541/10JUL0700/FRA/T20]]></LogEventProperty>
<LogEventProperty Name="Virtual Tester First Time Stamp" ID="Virtual Tester First Time Stamp"><![CDATA[68798]]></LogEventProperty>
<LogEventProperty Name="Virtual Tester Line Number" ID="Virtual Tester Line Number"><![CDATA[1177]]></LogEventProperty>
<LogEventProperty Name="Operating System" ID="Operating System"><![CDATA[Windows]]></LogEventProperty>
<LogEventProperty Name="OS Version" ID="OS Version"><![CDATA[2003]]></LogEventProperty>
<LogEventProperty Name="Processor" ID="Processor"><![CDATA[Pentium]]></LogEventProperty>
<LogEventProperty Name="Display Resolution" ID="Display Resolution"><![CDATA[1024x768]]></LogEventProperty>
<LogEventProperty Name="Display Color Bits" ID="Display Color Bits"><![CDATA[32]]></LogEventProperty>
<LogEventProperty Name="OS Service Pack" ID="OS Service Pack"><![CDATA[Service Pack 1]]></LogEventProperty>
<LogEventProperty Name="Memory Size" ID="Memory Size"><![CDATA[2048]]></LogEventProperty>
<LogEventProperty Name="Processor Number" ID="Processor Number"><![CDATA[4]]></LogEventProperty>
</LogEvent>
# 4  
Old 01-15-2008
Quote:
but since time is running out
Hmm.. this is not good

Based on the example posted above try this,

Code:
sed -n '/Start Time/s/^.*CDATA\[\(.*\)]].*$/\1/p' filename

but there are 2 records which match the criteria
# 5  
Old 01-15-2008
Yea.. just got the stuff in the morning, and I only have merely 12hours before submitting the report. Gah.

Thanks for your reply, but your code is nice enough to extract out the time, and I won't be needing all. Need it to match these 2 cases:

1) LogEvent ID ="Timer Start"
2) <![CDATA[send messages

What if I just want to extract the whole LogEvent ID="Timer Start"?

From <LogEvent ID="Timer Start"> to </LogEvent>.
# 6  
Old 01-15-2008
Quote:
What if I just want to extract the whole LogEvent ID="Timer Start"?

From <LogEvent ID="Timer Start"> to </LogEvent>.

awk '/LogEvent ID="Timer Start"/ {print} BEGIN {i=0} /LogEvent ID="Timer Start"/ {while (i<20) {getline; print $0; i++} i=0}' firstRun1_1905_131207.rtpar


Let me know if there's better solution.

Thanks.
# 7  
Old 01-16-2008
So uhmm.. I only have to extract the time (i.e. 19:04:46) which is located few lines before the pattern 'send messages'. Am trying couple of commands but it doesn't work Smilie

Help, anyone?

Thanks.

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract the specific tags in a XML file

Hello Shell Gurus, I have a requirement to get the specific tags from a XML file. Here is my code snippet <jdbc-system-resource> <name>SDPData Source</name> <target>AdminServer,osb_server1,soa_server1</target> ... (30 Replies)
Discussion started by: Siv51427882
30 Replies

2. Shell Programming and Scripting

Extract Data from XML file.

Hi Guys, I am in a need to extract data from a xml file. The XML file format is as below. <data jsxnamespace="propsbundle" locales=""> <locale> <!--Error messages starts--> <record jsxid="CHARPAIR001" jsxtext=" must be selected"></record> <record... (1 Reply)
Discussion started by: Showdown
1 Replies

3. Shell Programming and Scripting

How to extract data from XML file using shell scripting?

Hi , I have input file as XML. following are input data #complex.xml Code: <?xml version="1.0" encoding="UTF-8"?><TEST_doc xmlns="http://www.w3.org/2001/XMLSchema-instance"> <ENTRY uid="123456"> <protein> <name>PROT001</name> <organism>Human</organism> ... (1 Reply)
Discussion started by: arun_kohan
1 Replies

4. Shell Programming and Scripting

How to extract data from xml file using shell scripting?

Hi evry1, This is my 1st post in this forum.Pls help me I want to extract some data froma xml file which has 2000 lines using shell scripting. Actually my xml file has some "audio and video codes" which i need to arrange in a column wise format after extracting it using shell scripting.I... (4 Replies)
Discussion started by: arun_kohan
4 Replies

5. Shell Programming and Scripting

Extract data from XML file

Hi , I have input file as XML. following are input data #complex.xml <?xml version="1.0" encoding="UTF-8"?> <TEST_doc xmlns="http://www.w3.org/2001/XMLSchema-instance"> <ENTRY uid="123456"> <protein> <name>PROT001</name> <organism>Human</organism> ... (1 Reply)
Discussion started by: mohan sharma
1 Replies

6. Shell Programming and Scripting

Data Extract from XML Log File

Please help me out to extract the Data from the XML Log files. So here is the data ERROR|2010-08-26 00:05:52,958|SERIAL_ID=128279996|ST=2010-08-2600:05:52|DEVICE=113.2.21.12:601|TYPE=TransactionLog... (9 Replies)
Discussion started by: raghunsi
9 Replies

7. UNIX for Dummies Questions & Answers

Extract a specific number from an XML file based on the start and end tags

Hello People, I have the following contents in an XML file ........... ........... .......... ........... <Details = "Sample Details"> <Name>Bob</Name> <Age>34</Age> <Address>CA</Address> <ContactNumber>1234</ContactNumber> </Details> ........... ............. .............. (4 Replies)
Discussion started by: sushant172
4 Replies

8. Shell Programming and Scripting

How to Append the specific data to the xml file

I have an xml file data as shown below: <impl name="Nortel" is-enabled="true"> <package-mappings> <const-mapping target-state="EndPoint" target-param="cfCNDSubscribed" constant-value="true"/> <const-mapping... (2 Replies)
Discussion started by: ravi_rn
2 Replies

9. Shell Programming and Scripting

sed or awk to extract data from Xml file

Hi, I want to get data from Xml file by using sed or awk command. I want to get the following result : mon titre 1;Createur1;Dossier1 mon titre 1;Createur1;Dossier1 and save it in cvs file (fichier.cvs). FROM this Xml file (test.xml): <playlist version="1"> <trackList> <track>... (1 Reply)
Discussion started by: yeclota
1 Replies

10. Shell Programming and Scripting

Help with shell script to extract data from XML file

Hello Scripting Gurus, I need help with extracting data from the XML file using shell script. The data is in a large XML and I need to extract the id values of all completedworkflows. Here is a sample of it. Input and output data is also in the attached text files. <wfregistry>... (5 Replies)
Discussion started by: yajaykumar
5 Replies

Featured Tech Videos