08-13-2009
parsing(xml) using nawk/awk
Hi ,
I have an xml format as shown below:
<Info>
<last name="sean" first name="john"/>
<period="5" time="11"/>
<test value="1",test2 value="2",test3 value="3",test4 value="5">
<old>
<value1>1</value1>
<value2>2</value2>
</old>
<new>
<value1>4</value1>
<value2>3</value2>
</new>
<total>12</total>
</Info>
<Info>
<last name="sean" first name="micheal"/>
<period="10" time="20"/>
<test value="7",test2 value="8",test3 value="9",test4 value="10">
<old>
<value1>8</value1>
<value2>7</value2>
</old>
<new>
<value1>6</value1>
<value2>5</value2>
</new>
<total>20</total>
</Info>
output that i need is:
firstname,period,time,test_value,test3_value,test4_value,old_value1,old_value2,new_value1, new_value2,total
john,5,11,1,3,4,1,2,4,3,12
micheal,7,9,10,8,7,6,5,20
I just now how to parse <total>20</total> by using this
nawk 'BEGIN{FS="[<|>]"}
/<total>/ {printf(" %s\n"$3)}'
However, i do have have any ides on how to parse the rest of the file.
Anyone can know about that?
Your help is highly appreciated.
Thanks!
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I am trying to use a line of output in an XML file as input in another new XML file for processing purposes via a shell script. Since I am a newbie though, I'm not sure how to do this since the data is different everytime. I am using this technique with static data right now:
echo -n "Running... (5 Replies)
Discussion started by: corwin43
5 Replies
2. Shell Programming and Scripting
Hi people!,
I need extract from the file (test-file.txt) the values between
<context> and </context> tag's , the total are 7 lines,but i can only get 5 or 2 lines!!:confused:
Please look my code:
#awk '/context/{flag=1} /\/context/{flag=0} !/context/{ if (flag==1) p
rint $0; }'... (3 Replies)
Discussion started by: ricgamch
3 Replies
3. Shell Programming and Scripting
As per another thread - https://www.unix.com/shell-programming-scripting/81027-how-can-i-parse-xml-file-2.html
I am using the following to extract the Subaccid and RecAccTotal from the xm file below
awk -v v=SubaccId -F'' '$2==v{s=$3;getline;a+=$3}END {for (i in a)print v,i,a}' file
Can... (6 Replies)
Discussion started by: frustrated1
6 Replies
4. Shell Programming and Scripting
hello ,
i am trying to parse xml using awk however its a little bit tricky as i want
<databases>
<source>
<host>prod</host>
<port>1522</port>
<tns>GP1</tns>
<user>P11</user>... (6 Replies)
Discussion started by: amit1_x
6 Replies
5. Shell Programming and Scripting
Hi All,
I have an xml file with the below format.
<a>111</a><b>222</b><c>333<c><d><e>123</e><f>234</f><d><e>456</e><f>789</f>
output needed is
111,222,333,123,234
111,222,333,456,789
nawk 'BEGIN{FS="<|>"}
{print a,b,c,e,f
a=""
... (7 Replies)
Discussion started by: natalie23
7 Replies
6. Shell Programming and Scripting
I have a large xml file as shown below:
<input>
<blah>
<blah>
<atr="blah blah value = "">
<blah>
<blah>
</input>
..2nd chunk...
..3rd chunk...
...4th chunk...
All lines between <input> and </input> is one 'order' and this 'order' is repeated... (14 Replies)
Discussion started by: shekhar2010us
14 Replies
7. Shell Programming and Scripting
My XML structure looks like:
<?xml version="1.0" encoding="UTF-8"?>
<SearchRepository>
<SearchItems>
<SearchItem>
...
</SearchItem>
<SearchItem>
...
... (1 Reply)
Discussion started by: jasonjustice
1 Replies
8. Shell Programming and Scripting
i need one help, below is one more xml file with diff pattern i tried it but dint get it , iam sure its a peice of cake for you guys.
<xn:MeContext id="LSVLKY001">
<xn:ManagedElement id="1">
<un:RncFunction id="1">
<un:UtranCell... (2 Replies)
Discussion started by: tech_frk
2 Replies
9. Shell Programming and Scripting
hi all..
need your help again..
i have xml file and i want to parsing some data from the xml file..
<ex-name="keroco">
<................>
<................>
<................>
<br-name="cincai">
<ship="123456">
<...................>
... (3 Replies)
Discussion started by: buncit8
3 Replies
10. Shell Programming and Scripting
Hi All,
I have a problem to resolve. For following XML file, I need to parse the values based on Tag Name. I would prefer to use this by awk. I have used sed command to replace the tags (s/<SeqNo>//).
In this case there can be new tags introduced. So need to parse it based on Tag Name. Any... (9 Replies)
Discussion started by: Tons
9 Replies
LEARN ABOUT DEBIAN
stag-autoschema
STAG-AUTOSCHEMA(1p) User Contributed Perl Documentation STAG-AUTOSCHEMA(1p)
NAME
stag-autoschema - writes the implicit stag-schema for a stag file
SYNOPSIS
stag-autoschema -w sxpr sample-data.xml
stag-autoschema -dtd sample-data.xml
DESCRIPTION
Takes a stag compatible file (xml, sxpr, itext), or a file in any format plus a parser, and writes out the implicit underlying stag-schema
stag-schema should look relatively self-explanatory.
Here is an example stag-schema, shown in sxpr syntax:
(db
(person*
(name "s"
(address+
(address_type "s")
(street "s")
(street2? "s")
(city "s")
(zip? "s")))))
The database db contains zero or more persons, each person has a mandatory name and at least one address.
The cardinality mnemonics are as follows:
+ 1 or more
? 0 or one
* 0 or more
The default cardinality is 1
ARGUMENTS
-p|parser FORMAT
FORMAT is one of xml, sxpr or itext, or the name of a perl module
xml assumed as default
-dtd
exports schema as DTD
-w|writer FORMAT
FORMAT is one of xml, sxpr or itext, or the name of a perl module, OR DTD
The default is sxpr
note that stag schemas exported as xml will be invalid xml, due to the use of symbols *, +, ? in the node names
LIMITATIONS
not event based - memory usage becomes exhorbitant on large files; prepare a small sample beforehand
perl v5.10.0 2008-12-23 STAG-AUTOSCHEMA(1p)