12-02-2008
OK - can only give you a general type reply - this will require AWK.
Make your RS=">", that will break the input into lines containing the different fields.
Then you would check to see if it is a start tag or or end tag field indicator by the last character being a "/" -
When you fine a start-tag, the next record is your input value for that tag - unless it is an end-tag.
Some of the things to be carefull for in XML
It could be unicode based - what will you do then - awk and most UNIX utilities are bad at handling binary zeroes.
I have seen XML files where it is a 25000 character single line. Perfectly leagal to XML, bad for vi on UNIX. That is the reason for the Field Separator definition to awk.
in you example - filename looks like it contains two elements, and not other data.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
If someone out there could help me out with this problem. I would really appreciate it.
I am trying to convert xml into text file(fixed length) using Unix Borne shell scripts.
My xml file:
<root>
<header_rec recordtype="00">
<record_id>00</record_id>
... (0 Replies)
Discussion started by: ram2s2001
0 Replies
2. UNIX for Dummies Questions & Answers
I want to find out the record length of a fixed length file? I forgot the command. Any body know? (9 Replies)
Discussion started by: tranq01
9 Replies
3. Programming
i have an input file of XML type with data like
<nx-charging:additional-parameter name="NX_INTERNATIONALIZED_CLID" value="919427960829"/><nx-charging:finalStatus>RESPONSE , Not/Applicable , OK</nx-charging:finalStatus></nx-charging:process>
i want to extract data such that i get the output... (3 Replies)
Discussion started by: junaid.nehvi
3 Replies
4. Shell Programming and Scripting
Hi,
in the cobol copy books is there any regular expressions to be used in awk to fetch the length of each columns?
below mentioned are the examples.
Copy Book Sample
01 tablename.
02 group header.
03 col1 s9(10)V99.
03 Col2 s9(10)V9(3).
03 Col3 XXXX
02... (7 Replies)
Discussion started by: ahmedwaseem2000
7 Replies
5. UNIX for Dummies Questions & Answers
Hi,
Within a UNIX shell script I need to extract a value from an XML field. The field will contain different values but will always be 6 digits in length. E.g.:
<provider-id>999999</provider-id>
I've tried various ways but no luck. Any ideas how I might get the provider id (in this case... (2 Replies)
Discussion started by: pnclayt11
2 Replies
6. Shell Programming and Scripting
Hello Everyone,
I am stuck with one issue while working on abstract flat file which i have to use as input and load data to table.
Input Data-
------ ------------------------ ---- -----------------
WFI001 Xxxxxx Control Work Item A Number of Records
------ ------------------------... (5 Replies)
Discussion started by: sonali.s.more
5 Replies
7. Shell Programming and Scripting
Hi all,
I have a requirement to replace a field with a character as per the length of the field.
Suppose i have a file where second field is of 20 character length. I want to replace second field with 20 stars (*). like ********************
As the field is not a fixed one, i want to do the... (2 Replies)
Discussion started by: gani_85
2 Replies
8. Red Hat
i have a xml file and in that input file path is given. how to fetch that input file
path using shell script. (4 Replies)
Discussion started by: ramsavi
4 Replies
9. Shell Programming and Scripting
hai guys,
pick the 1st field and calculate max length.
if suppose max length is 2,
then compare the all records if <2 then add zero's prefix of the record.
for ex:
s.no,sname
1,djud
37,jtuhe
in this max length of the 1st field is 2 right
the output wil be
s.no,sname
01,djud... (6 Replies)
Discussion started by: Suneelbabu.etl
6 Replies
10. Shell Programming and Scripting
The awk below produces the current output, which will add +1 to $3. However, I am trying to add the length of the matching characters between $5 and $6 to $3. I have tried using sub as a variable to store the length but am not able to do so correctly. I added comments to each line and the... (4 Replies)
Discussion started by: cmccabe
4 Replies
LEARN ABOUT OSX
xml::parser::style::stream
Parser::Style::Stream(3) User Contributed Perl Documentation Parser::Style::Stream(3)
NAME
XML::Parser::Style::Stream - Stream style for XML::Parser
SYNOPSIS
use XML::Parser;
my $p = XML::Parser->new(Style => 'Stream', Pkg => 'MySubs');
$p->parsefile('foo.xml');
{
package MySubs;
sub StartTag {
my ($e, $name) = @_;
# do something with start tags
}
sub EndTag {
my ($e, $name) = @_;
# do something with end tags
}
sub Characters {
my ($e, $data) = @_;
# do something with text nodes
}
}
DESCRIPTION
This style uses the Pkg option to find subs in a given package to call for each event. If none of the subs that this style looks for is
there, then the effect of parsing with this style is to print a canonical copy of the document without comments or declarations. All the
subs receive as their 1st parameter the Expat instance for the document they're parsing.
It looks for the following routines:
o StartDocument
Called at the start of the parse .
o StartTag
Called for every start tag with a second parameter of the element type. The $_ variable will contain a copy of the tag and the %_
variable will contain attribute values supplied for that element.
o EndTag
Called for every end tag with a second parameter of the element type. The $_ variable will contain a copy of the end tag.
o Text
Called just before start or end tags with accumulated non-markup text in the $_ variable.
o PI
Called for processing instructions. The $_ variable will contain a copy of the PI and the target and data are sent as 2nd and 3rd
parameters respectively.
o EndDocument
Called at conclusion of the parse.
perl v5.16.2 2011-05-24 Parser::Style::Stream(3)