How to get values from xml tags?

Hi guys,

Need ur help again.
Source File is coming like this. sample two records are below:

<?xml version="1.0"?>
<Object>
  <Header>
    <XCOMVers>V1.0</XCOMVers>
    <REPORT>XXXXX</REPORT>
    <CODE>002</CODE>
  </Header>
  <IssueCard>
    <Record>
	<L>CAR SYSTEM           -SSSSS  -</L>
      <L>                          CODE:      202</L>
      <L>---</L>
      <L>Message:</L>
      <L>:21:XXXXXXXX</L>
      <L>:103B:/1213-XX736472-567GH0</L>
      <L>---</L>
      <L>Confirm:</L>
      <L>---</L>
      <L>Data Log:</L>
      <L>Created:                     Status-ID:        R-NO:       Details:</L>
      <L>2010-03-25-09.51.52.484529   CREATED           ICG-SSTS   Message log step 1</L>
      <L>                                                          4545454555</L>
      <L>2010-03-25-09.51.52.509229   SENDER    ICG-SSTS   Message log step 2</L>
      <L>2010-03-25-09.51.52.520070   EXIT-SYSTEM  ICG-SSTS   Message log step 3</L>
      <L>                                                          Message log step 5</L>
      <L>2010-03-25-09.51.53.157416   EXIT-OK-SYSTEM    ICG-SSTS   Message log step 6</L>
      <L>                                                          Message log step 7</L>
      <L>2010-03-25-09.51.53.171452   COMPLETED         ICG-SSTS   Message log step 8</L>
      <L>                                                          Message log step 9</L>
      <L>                                                          Message log step 10</L>
      <L>---</L>
    </Record>
  </IssueCard>
</Object>
<?xml version="1.0"?>
<Object>
  <Header>
    <XCOMVers>V1.0</XCOMVers>
    <REPORT>XXXXX</REPORT>
    <CODE>002</CODE>
  </Header>
  <IssueCard>
    <Record>
	<L>CAR SYSTEM           -SSSSS  -</L>
      <L>                          CODE:      202</L>
      <L>---</L>
      <L>Message:</L>
      <L>:21:XXXXXXXX</L>
      <L>:103B:/1213-XX736472-567GH0</L>
      <L>---</L>
      <L>Confirm:</L>
	  <L>---</L>
      <L>Data Log:</L>
      <L>Created:                     Status-ID:        R-NO:       Details:</L>
      <L>2010-03-25-09.51.52.484529   CREATED           ICG-SSTS   Message log step 1</L>
      <L>                                                          4545454555</L>
      <L>2010-03-25-09.51.52.509229   SENDER    ICG-SSTS   Message log step 2</L>
      <L>2010-03-25-09.51.52.520070   EXIT-SYSTEM  ICG-SSTS   Message log step 3</L>
      <L>                                                          Message log step 5</L>
      <L>2010-03-25-09.51.53.157416   EXIT-OK-SYSTEM    ICG-SSTS   Message log step 6</L>
      <L>                                                          Message log step 7</L>
      <L>2010-03-25-09.51.53.171452   COMPLETED         ICG-SSTS   Message log step 8</L>
      <L>                                                          Message log step 9</L>
      <L>---</L>
    </Record>
  </IssueCard>
</Object>

To fetch the header column's value i'm using below code but having performance issue. As i'm getting 2gb file.

REPORT=`perl -nle 'print /(?<=REPORT>).*?(?=<\/REPORT>)/g' Inputfile | awk '(NR==3)'`

So to fetch 15 columns value like this and for thousands of records is a performance barrier here. Is there any other way to doing this task.

Other biggest challenge i'm facing is to fetch the value under section <Data log:>
i want output for CREATED status and for COMPLETED status only.
like:

CREATION_DATE				COMPLETION_DATE
2010-03-25-09.51.52.484529	2010-03-25-09.51.53.171452

Please guys help me.

Based on the input given .. Try with this ..

$ nawk '/CREATED|COMPLETED/{split($1,a,">"); print a[2]}' infile
2010-03-25-09.51.52.484529
2010-03-25-09.51.53.171452
2010-03-25-09.51.52.484529
2010-03-25-09.51.53.171452
1 Like
<L>Created:                     Status-ID:        R-NO:       Details:</L>
      <L>2010-03-25-09.51.52.484529   CREATED           ICG-SSTS   Message log step 1</L>
      <L>                                                          4545454555</L>
      <L>2010-03-25-09.51.52.509229   SENDER    ICG-SSTS   Message log step 2</L>
      <L>2010-03-25-09.51.52.520070   EXIT-SYSTEM  ICG-SSTS   Message log step 3</L>
      <L>                                                          Message log step 5</L>
      <L>2010-03-25-09.51.53.157416   EXIT-OK-SYSTEM    ICG-SSTS   Message log step 6</L>
      <L>                                                          Message log step 7</L>
      <L>2010-03-25-09.51.53.171452   COMPLETED         ICG-SSTS   Message log step 8</L>
      <L>                                                          Message log step 9</L>

I want output as

COMPLETED         

which is the last status-id.

pls help to get this.

Looking for all lines that end with tag </L> & Considering the output to be always present in 3rd last line :

grep -n "\/L>" xmlfile | tail -3 | head -1 | awk '{print $3}'