02-11-2012
Need the script to remove common strings,tags etc
I have a file say "example.xml" and the contents of this example.xml are
<project name="platform/packages/wallpapers/Basic" path="packages/wallpapers/Basic" revision="225e410f054c4ad5c828b0fec9be1b47c4376711"/>
<project name="platform/packages/wallpapers/Galaxy4" path="packages/wallpapers/Galaxy4" revision="536e9c842b63ad618936b758076edf18f9726d98"/>
<project name="platform/packages/wallpapers/HoloSpiral" path="packages/wallpapers/HoloSpiral" revision="d816c1b97de9609d5479ae85611f9b2bf5f609aa"/>
<project name="platform/packages/wallpapers/LivePicker" path="packages/wallpapers/LivePicker" revision="ad8535ee889d92348da3faa63dcd5ea097952dd9"/>
Now the expected out should be :
Quote:
platform/packages/wallpapers/Basic
225e410f054c4ad5c828b0fec9be1b47c4376711
platform/packages/wallpapers/Galaxy4
536e9c842b63ad618936b758076edf18f9726d98
platform/packages/wallpapers/HoloSpiral
d816c1b97de9609d5479ae85611f9b2bf5f609aa
platform/packages/wallpapers/LivePicker
ad8535ee889d92348da3faa63dcd5ea097952dd9
So I need a script which does this. All I need is just remove
Quote:
<project name=""path="packages/wallpapers/Basic" revision=""/>
.
Thanks in advance.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Thank you for assisting,
I've got a partial solution just needs a tweak.
Hulk-BASH$ cat somefile.txt
oh there is some stuff here
some more stuff here
START_LABEL
stuff I want
more stuff I want
END_LABEL
other stuff here too
and even more stuff here too
Hulk-BASH$
Hulk-BASH$ sed... (8 Replies)
Discussion started by: laser
8 Replies
2. Shell Programming and Scripting
Hi ,
I want to write a simple script.
I have two files
file1:
BCSpeciality
Backend
CB
CBAPQualDisp
CBCimsVFTRCK
CBDSNQualDisp
CBDefault
CBDisney
CBFaxMCGen
CBMCGeneral
CBMCQualDisp
file2:
CSpeciality
Backend (8 Replies)
Discussion started by: ramky79
8 Replies
3. UNIX for Advanced & Expert Users
Hi ,
I have a text file in the format
DB2:
DB2:
WB:
WB:
WB:
WB:
and a second text file of the format
Time=00:00:00.473
Time=00:00:00.436
Time=00:00:00.016
Time=00:00:00.027
Time=00:00:00.471
Time=00:00:00.436
the last string in both the text files is of the... (4 Replies)
Discussion started by: kanthrajgowda
4 Replies
4. Shell Programming and Scripting
Hi all,
I'd like you to help or give any advise about the following:
I have two (2) files, file1 and file2, both files have information common to each other. The contents of file1 is a subset of the contents of file2:
file1:
errormsgadmin
esdp
esgservices
esignipa
iprice
ipvpn
irm... (0 Replies)
Discussion started by: hnux
0 Replies
5. Shell Programming and Scripting
Hi all,
I'd like you to help or give any advise about the following:
I have two (2) files, file1 and file2, both files have information common to each other. The contents of file1 is a subset of the contents of file2:
file1:
errormsgadmin
esdp
esgservices
esignipa
iprice
ipvpn
irm... (18 Replies)
Discussion started by: hnux
18 Replies
6. Shell Programming and Scripting
Hi Guys,
I need some script in removing lines containing strings like ",, ," and "rows". Retain only numbers as the output. See below for the input and output file.
INPUT FILE:
9817
9832
6285
6312
6313
6318
,, ,
6329
7078
7098
7130
7959
7983 (7 Replies)
Discussion started by: pinpe
7 Replies
7. Shell Programming and Scripting
I'm running on freebsd -- with a default shell of csh.
I have two files named A and B. Each line of each file contains a file name. How can I write a script that removes all the file names in file B from A.
I tried to use perl to create a huge regular expression with "|" separating the file... (2 Replies)
Discussion started by: siegfried
2 Replies
8. Shell Programming and Scripting
Below am trying to separate FA-7A:1, In output file it should display 7A 1
Command am using
Gives same output as below format:
22B7 10000000c9720873 0
22B7 10000000c95d5d8b 0
22BB 10000000c97843a2 0
22BB 10000000c975adbd 0
Not showing FA ports as required format... (5 Replies)
Discussion started by: aix_admin_007
5 Replies
9. Shell Programming and Scripting
Is there a simple way to find the longest common prefix of a space-separated list of strings, optionally by field?
For example, given input:
"aaa_b_cc aaa_b_cc_ddd aaa_b_cc aaa_b_cd"with no field separator, output:
aaa_b_cwith _ field separator, output:
aaa_bI have an awk solution which... (1 Reply)
Discussion started by: CarloM
1 Replies
10. Shell Programming and Scripting
<Start>
<Header>
This is header section
</Header>
<Body>
<Body_start>
This is body section
<a>
<b>
<c>
<st>111</st>
</c>
<d>
<st>blank</st>
</d>
</b>
</a>
</Body_start>
<Body_section>
This is body section (3 Replies)
Discussion started by: RJG
3 Replies
LEARN ABOUT DEBIAN
xml::smart::tutorial
XML::Smart::Tutorial(3pm) User Contributed Perl Documentation XML::Smart::Tutorial(3pm)
NAME
XML::Smart::Tutorial - Tutorial and examples for XML::Smart.
SYNOPSIS
This document is a tutorial for XML::Smart and shows some examples of usual things.
Working with contents:
In XML::Smart the key CONTENT is reserved and shouldn't be used directly, since XML::Smart will deal with the convertion of arguments to
node contents, including multiple node contents autimatically.
What happens when you set a value:
$xml->{root}{foo} = 'simple value' ;
Here foo will be a normal argument/attribute value, and will generate this XML data:
<root foo="simple value"/>
But if you insert some tag or lines in the values by default XML::Smart will convert it to a node content:
$xml->{root}{foo} = "line0
lien1
line2
" ;
And will generate that XML data:
<root>
<foo>line0
lien1
line2
</foo>
</root>
But what you can do if you want to force some type, let's say, have a node content with a simple value:
$xml->{root}{foo} = 'simple value' ;
$xml->{root}{foo}->set_node(1) ;
And will generate that XML data:
<root>
<foo>simple value</foo>
</root>
Multiple contents:
When you have interpolated content/data you need to work in a different. Let's say that you load this XML data:
<root>
content0
<tag1 arg="1"/>
content1
</root>
If you access directly the root key as string you will get all the content parts grouped. So, this code:
my $xml = new XML::Smart(q`
<root>
content0
<tag1 arg="1"/>
content1
</root>
`,'smart') ;
print "#$xml->{root}#" ;
Will print that:
#
content0
content1
#
To access each part of the content independently you should use an array that receive the method content():
my @content = $xml->{root}->content ;
print "#$content[0]#
" ;
And this will print that:
#
content0
#
Now to set the multiple content values you should use the method content() with 2 arguments:
$xml->{root}->content(0,'new content') ;
And now the XML data produced will be:
<root>new content<tag1 arg="1"/>
content1
</root>
If you use the method content() with only one argument it will remove all the multiple contents and will set the new value in the place of
the 1st content.
Setting the XML Parser.
By defaul XML::Smart will use XML::Parser or XML::Smart::Parser (in this order of preference) to load a XML data.
To force or define by your self the parser you can use the 2nd argument option when creating a XML::Smart object:
my $xml = new XML::Smart( 'some.xml' , 'XML::Parser' ) ;
## and
my $xml = new XML::Smart( 'some.xml' , 'XML::Smart::Parser' ) ;
XML::Smart also has an extra parser, XML::Smart::HTMLParser, that can be used to load HTML as XML, or to load wild XML data:
my $xml = new XML::Smart( 'some.xml' , 'XML::Smart::HTMLParser' ) ;
Aliases for the parser options:
SMART|REGEXP => XML::Smart::Parser
HTML => XML::Smart::HTMLParser
So, you can use as:
my $xml = new XML::Smart( 'some.xml' , 'smart' ) ;
my $xml = new XML::Smart( 'some.xml' , 'html' ) ;
Customizing the Parser.
You can customize the way that the parser will treat the XML data:
Forcing nodes/tags and arguments/attributes to lowercase or upercase:
## For lower case:
my $xml = new XML::Smart( 'some.xml' ,
lowtag => 1 ,
lowarg => 1 ,
) ;
## For uper case:
my $xml = new XML::Smart( 'some.xml' ,
upertag => 1 ,
uperarg => 1 ,
) ;
Loading arguments without values (flags) as a TRUE boolean:
** Note, this option will work only when the XML is parsed by XML::Smart::HTMLParser, since only it accept arguments without values!
my $xml = new XML::Smart(
'<root><foo arg1="" flag></root>' ,
'XML::Smart::HTMLParser' ,
arg_single => 1 ,
) ;
Here's the tree of the example above:
'root' => {
'foo' => {
'flag' => 1,
'arg1' => ''
},
},
Customizing the parse events:
XML::Smart can redirect the parsing process to personalized functions:
my $xml = XML::Smart->new( 'some.xml' ,
on_start => &on_start ,
on_char => &on_char ,
on_end => &on_end ,
) ;
sub on_start {
my ( $tag , $pointer , $pointer_back ) = @_ ;
$pointer->{$tag}{type_user} = 1 if $tag =~ /(?:name|age)/ ;
}
sub on_char {
my ( $tag , $pointer , $pointer_back , $content) = @_ ;
$$content =~ s/s+/ /gs ;
}
sub on_end {
my ( $tag , $pointer , $pointer_back ) = @_ ;
$pointer->{$tag}{type_extra} = 1 if $tag =~ /(?:more|tel|address)/ ;
}
AUTHOR
Graciliano M. P. <gm@virtuasites.com.br>
I will appreciate any type of feedback (include your opinions and/or suggestions). ;-P
Enjoy and thanks for who are enjoying this tool and have sent e-mails! ;-P
ePod
This document was written in ePod (easy-POD), than converted to POD, and from here you know the way.
perl v5.10.1 2004-12-08 XML::Smart::Tutorial(3pm)