XML parsing


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting XML parsing
# 8  
Old 01-25-2013
You are right. Depending upon other tag value positions I have adjusted it. I hope you understood.
This User Gave Thanks to Yoda For This Post:
# 9  
Old 01-25-2013
many thanks Bipin.. :-) i understood.
# 10  
Old 03-05-2013
as of now i am using this below code

Code:
awk -F'[=|"|<|>|,]' '{for(i=1;i<=NF;i++){
 if($i=="Alert id") {
  if(id!="")
        if(dt!="" && fx == "false"){ printf "NAME=%s\nFIXED=%s\nDATE=%s\nAlDefID=%d\nResId=%d\nReason=%s\n\n", nm,fx,dt,alDFid,rId,reson; }
  id=($i=="Alert id")?$(i+2):id; }
  nm=($i==" name")?$(i+2):nm;
  fx=($i==" fixed")?$(i+2):fx;
  dt=($i~/^ [0-9]+-/)?$i" "$(i+1):dt;
  alDFid=($i==" alertDefinitionId")?$(i+2):alDFid;
  rId=($i==" resourceId")?$(i+2):rId;
reson=($i==" reason")?$(i+2):reson;
 }
}END{
 if(dt!="" && fx == "false"){
 printf "NAME=%s\nFIXED=%s\nDATE=%s\nAlDefID=%d\nResId=%d\nReason=%s\n", nm,fx,dt,alDFid,rId,reson;
}
}' alerts.xml >alertsExtracted.txt


but it is failing to display complete string for below inputs for REASON field

Code:
 <Alert id="10615" name="Turret-IQ/MAX-101001-NotAvailable-P" alertDefinitionId="17473" resourceId="11720" ctime="1362464100000" fixed="false" reason="If Availability != 100.0% (actual value = 0.0%)">
 
 
</Alert>
    <Alert id="10602" name="APP-MS-lib_license_common-150040-licenseSchemaTampered-S" alertDefinitionId="16315" resourceId="11424" ctime="1362398245776" fixed="false" reason="If Event/Log Level(ANY) and matching substring &quot;licenseSchemaTampered&quot;     Log: : 3 days, 1:57:16.57, 1.3.6.1.4.1.1453.4.9.1.3.0.1, License Entity Tampered., SET License Entity Tampered : 2003,, licenseSchemaTampered, 2013-03-04,06:57:25.7,--5:0, HIGH, , License Entity Tampered  due to change of value(s     AND Event/Log Level(ANY) and matching substring &quot;HIGH&quot;     Log: : 3 days, 1:57:16.57, 1.3.6.1.4.1.1453.4.9.1.3.0.1, License Entity Tampered., SET License Entity Tampered : 2003,, licenseSchemaTampered, 2013-03-04,06:57:25.7,--5:0, HIGH, , License Entity Tampered  due to change of value(s     AND Event/Log Level(ANY) and matching substring &quot;lib_license_common&quot;     Log: : 3 days, 1:57:16.57, 1.3.6.1.4.1.1453.4.9.1.3.0.1, License Entity Tampered., SET License Entity Tampered : 2003,, licenseSchemaTampered, 2013-03-04,06:57:25.7,--5:0, HIGH, 10.19.123.105, License Entity Tampered  due to change of value(s"/>



the output is coming as

Code:
NAME=APP-MS-lib_license_common-150040-licenseSchemaTampered-S
FIXED=false
DATE= 2013-03-04 06:57:25.7
Description= License Entity Tampered. 
PRIORITY=HIGH
RESOURCE NAME=-pri-105
Reason=If Event/Log Level(ANY) and matching substring &quot;licenseSchemaTampered&quot; Log: : 3 days
NAME=CCM-Platform-106006-LinuxServerLostConnection-P
FIXED=false
DATE= 2013-03-04 06:47:25.7
Description= Linux Server lost connection (missed one polling)  Resolution hint: Check network connection 
PRIORITY=MED
RESOURCE NAME=204
Reason=If Availability &lt; 100.0% (actual value


i am interested in the modification of only Reason field to provide complete output as below



Code:
NAME=APP-MS-lib_license_common-150040-licenseSchemaTampered-S
FIXED=false
DATE= 2013-03-04 06:57:25.7
Description= License Entity Tampered. PRIORITY=HIGH
RESOURCE NAME=-pri-105
Reason=If Event/Log Level(ANY) and matching substring &quot;licenseSchemaTampered&quot; Log: : 3 days
NAME=CCM-Platform-106006-LinuxServerLostConnection-P
FIXED=false
DATE= 2013-03-04 06:47:25.7
Description= Linux Server lost connection (missed one polling)  Resolution hint: Check network connection 
PRIORITY=MED
RESOURCE NAME=204
Reason=If Availability != 100.0% (actual value = 0.0%)

is it possible?

Last edited by vivek d r; 03-21-2013 at 09:20 AM..
# 11  
Old 03-05-2013
Just concatenate next field:
Code:
reson=($i==" reason")?$(i+2)$(i+3):reson;

Also change field separators to:
Code:
awk -F'[="<>,]'

# 12  
Old 03-05-2013
Hi Bipinajith, i dint understand the part where the code is converting date
Code:
dt=($i~/^ [0-9]+-/)?$i" "$(i+1):dt;


is it converting epoc time to normal time?

for few of my xml its not considering date and hench there is null check on date it is not displaying that entry in the output.


for the prvious querry i implemented below part as quick workaround

Code:
        if( fx == "false"){ printf "NAME=%s\nFIXED=%s\nDATE and TIME=%s\nResId=%d\nAlDefID=%d\nReason=%s%s\n\n", nm,fx,dt,rId,alDFid,reson,reson2; }
  id=($i=="Alert id")?$(i+2):id; }
  nm=($i==" name")?$(i+2):nm;
  fx=($i==" fixed")?$(i+2):fx;
  dt=($i~/^ [0-9]+-/)?$i" "$(i+1):dt;
  alDFid=($i==" alertDefinitionId")?$(i+2):alDFid;
  rId=($i==" resourceId")?$(i+2):rId;
reson=($i==" reason")?$(i+2):reson;
reson2=($i==" reason")?$(i+3):reson2;
 }
}END{
 if(fx == "false"){
 printf "NAME=%s\nFIXED=%s\nDATE AND TIME=%s\nResId=%d\nAlDefID=%d\nReason=%s%s\n", nm,fx,dt,rId,alDFid,reson,reson2;

# 13  
Old 03-05-2013
Code is not doing any conversion.

Regexp /^ [0-9]+-/ means that pattern should start with a space ^ followed by one or more occurrence of any number [0-9]+ followed by hyphen -

If this regexp is not working for fetching date. Then you have to look at your input XML and define a regexp that satisfies all possibilities to fetch date.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

XML parsing

I have an xml file where the format looks like below <SESSIONCOMPONENT REFOBJECTNAME ="pre_session_command" REUSABLE ="NO" TYPE ="Pre-session command"> <TASK DESCRIPTION ="" NAME ="pre_session_command" REUSABLE ="NO" TYPE ="Command" VERSIONNUMBER ="1"> ... (8 Replies)
Discussion started by: r_t_1601
8 Replies

2. Shell Programming and Scripting

XML Parsing :

HI I want to parse below file in to two output :- Input :- ?xml version="1.0" encoding="UTF-8"?> <bulkCmConfigDataFile xmlns:un="utranNrm.xsd" <configData dnPrefix="Undefined"> <xn:SubNetwork id="ONRM_ROOT_MO_R"> <xn:MeContext id="C136"> ... (3 Replies)
Discussion started by: asavaliya
3 Replies

3. Shell Programming and Scripting

XML: parsing of the Google contacts XML file

I am trying to parse the XML Google contact file using tools like xmllint and I even dived into the XSL Style Sheets using xsltproc but I get nowhere. I can not supply any sample file as it contains private data but you can download your own contacts using this script: #!/bin/sh # imports... (9 Replies)
Discussion started by: ripat
9 Replies

4. Shell Programming and Scripting

Parsing XML

I am trying to parse an xml file and trying to grab certain values and inserting them into database table. I have the following xml that I am parsing: <dd:service name="locator" link="false"> <dd:activation mode="manual" /> <dd:run mode="direct_persistent" proxified="false" managed="true"... (7 Replies)
Discussion started by: $criptKid617
7 Replies

5. UNIX for Advanced & Expert Users

XML Parsing

I had a big XML and from which I have to make a layout as below *TOTAL+CB | *CB+FX | CS |*IR | *TOTAL | -------------------------------------------------------------------------------------------------- |CB FX | | | | DMFXNY EMSGFX... (6 Replies)
Discussion started by: manas_ranjan
6 Replies

6. Shell Programming and Scripting

Parsing XML

Learned People, Hello ! Till today, for the most part, all of the tricky questions/situations that I encountered were already posted by other folks and all I had to do was peruse through these one at a time and I could find some sort of an answer and all I had to do was add some minor tweaks... (5 Replies)
Discussion started by: ManoharMa
5 Replies

7. Shell Programming and Scripting

XML parsing

I have a xml file attached. I need to parse parameterId and its value My output should be like 151515 38 151522 32769 and so on.. Please help me. Its urgent (6 Replies)
Discussion started by: LavanyaP
6 Replies

8. Shell Programming and Scripting

XML Parsing

Hi, Need a script to parse the following xml file content <tag1 Name="val1"> <abc Name="key"/> <abc Name="pass">*********</abc> </tag1> <tag2 Name="Core"> <Host Name="a.b.c"> <tag1 Name="abc"> <abc Name="ac">None</abc> ... (4 Replies)
Discussion started by: Mavericc
4 Replies

9. Shell Programming and Scripting

parsing xml

I want to use wget comment to parse an xml parse that exist in an online website. How can I connect it using shell script through Unix and how can I parse it?? (1 Reply)
Discussion started by: walnut
1 Replies

10. Programming

XML parsing

Hi I want to take an XML file and transform it into a pipe-delimited format. What is the best tool to use for this? I have libxml2 which seems to be the best xml parser around. The xml file will have the following format. <Txn> <Date>120504</Date> <id>99</id> <Items> <Item>... (1 Reply)
Discussion started by: handak9
1 Replies
Login or Register to Ask a Question