Sponsored Content
Full Discussion: Help me with perl script.
Top Forums Programming Help me with perl script. Post 302561244 by veerubiji on Tuesday 4th of October 2011 03:07:49 AM
Old 10-04-2011
Quote:
Originally Posted by MacMonster
You output still need to keep the original xml content between "<dtc>" and "</dtc>" ?
yes, i need to keep original xml data as same as it is . but my output must be testnumber and according description below like that.

---------- Post updated at 10:32 PM ---------- Previous update was at 10:29 PM ----------

Quote:
Originally Posted by MacMonster
You output still need to keep the original xml content between "<dtc>" and "</dtc>" ?
yes

---------- Post updated 10-04-11 at 09:07 AM ---------- Previous update was 10-03-11 at 10:32 PM ----------

Quote:
Originally Posted by durden_tyler
Code:
$
$
$ cat data.xml
<foo>
 <data>
   <testnumber>1100</testnumber>
   <cause>battery short circuit</cause>
   <description>check proper connection</description>
 </data>
 <data>
   <testnumber>1200</testnumber>
   <cause>Some other cause</cause>
   <description>Some other description</description>
 </data>
</foo>
$
$
$ cat -n parsedata.pl
    1  #!perl -w
    2  use XML::Parser;
    3  my $tag;
    4  my $key;
    5  my %testnums;
    6  my $str;
    7
    8  sub handle_start {
    9    my ($parseinst, $element, %attrs) = @_;
   10    $tag = $element;
   11  }
   12  sub handle_end {
   13    my ($parseinst, $element, %attrs) = @_;
   14    $tag = "";
   15  }
   16  sub handle_char {
   17    my ($parseinst, $data) = @_;
   18    if (defined $tag and $tag eq "testnumber") {
   19      $key = $data;
   20    } elsif (defined $tag and $tag eq "description") {
   21      $testnums{$key} = $data;
   22    }
   23  }
   24
   25  {
   26    local $/=undef;
   27    open (FH, "<", "data.xml") or die "Can't open file: $!";
   28    $str = <FH>;
   29    close (FH) or die "Can't close file: $!";
   30  }
   31  $p1 = XML::Parser->new(Handlers => {Start => \&handle_start,
   32                                      End   => \&handle_end,
   33                                      Char  => \&handle_char});
   34  $p1->parse($str);
   35
   36  # print the hash
   37  while (my ($k, $v) = each %testnums) {
   38    print "Key = $k, Value = $v\n";
   39  }
$
$ perl parsedata.pl
Key = 1200, Value = Some other description
Key = 1100, Value = check proper connection
$
$

tyler_durden



reply,
Thank you very much for your reply and i tried this one it prints the description line only but under description i need to print the xml original data as it is. like
testcode :1100
description: <data>
<testnumber>1100</testnumber>
<cause>battery short circuit</cause>
<description> check proper connection</description>
</data>
testcode :1200
description: <data>
<testnumber>1200</testnumber>
<cause>battery short circuit</cause>
<description> check proper connection</description>
</data>.............
like this. thanks in advance.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl: Run perl script in the current process

I have a question regarding running perl in the current process. I shall demonstrate with an example. Look at this. sh-2.05b$ pwd /tmp sh-2.05b$ cat test.sh #! /bin/sh cd /etc sh-2.05b$ ./test.sh sh-2.05b$ pwd /tmp sh-2.05b$ . ./test.sh sh-2.05b$ pwd /etc sh-2.05b$ So... (10 Replies)
Discussion started by: vino
10 Replies

2. Shell Programming and Scripting

[Perl] Accessing array elements within a sed command in Perl script

I am trying to use a script to replace the header of each file, whose filename are stored within the array $test, using the sed command within a Perl script as follows: $count = 0; while ( $count < $#test ) { `sed -e 's/BIOGRF 321/BIOGRF 332/g' ${test} > 0`; `cat 0 >... (2 Replies)
Discussion started by: userix
2 Replies

3. Shell Programming and Scripting

perl/unix: script in command line works but not in perl

so in unix this command works works and shows me a list of directories find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt but when i try running a perl script to run this command my $query = 'find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt';... (2 Replies)
Discussion started by: kpddong
2 Replies

4. Shell Programming and Scripting

Perl :How to print the o/p of a Perl script on console and redirecting same in log file @ same time.

How can i print the output of a perl script on a unix console and redirect the same in a log file under same directory simultaneously ? Like in Shell script, we use tee, is there anything in Perl or any other option ? (2 Replies)
Discussion started by: butterfly20
2 Replies

5. Shell Programming and Scripting

HELP on Perl array / sorting - trying to convert Korn Shell Script to Perl

Hi all, Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM. Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers. At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies

6. Shell Programming and Scripting

calling a perl script with arguments from a parent perl script

I am trying to run a perl script which needs input arguments from a parent perl script, but doesn't seem to work. Appreciate your help in this regard. From parent.pl $input1=123; $input2=abc; I tried calling it with system("/usr/bin/perl child.pl $input1 $input2"); and `perl... (1 Reply)
Discussion started by: grajp002
1 Replies

7. Shell Programming and Scripting

executing perl script from another perl script : NOT WORKING

Hi Folks, I have 2 perl scripts and I need to execute 2nd perl script from the 1st perl script in WINDOWS. In the 1st perl script that I had, I am calling the 2nd script main.pl =========== print "This is my main script\n"; `perl C:\\Users\\sripathg\\Desktop\\scripts\\hi.pl`; ... (3 Replies)
Discussion started by: giridhar276
3 Replies

8. Shell Programming and Scripting

Perl : embedding java script with cgi perl script

Hi All, I am aware that html tags can be embedded in cgi script as below.. In the same way is it possible to embed the below javascript in perl cgi script ?? print("<form action="action.htm" method="post" onSubmit="return submitForm(this.Submitbutton)">"); print("<input type = "text"... (1 Reply)
Discussion started by: scriptscript
1 Replies

9. Shell Programming and Scripting

Excuting perl script from within a perl script with variables.

Not sure what I am doing wrong here, but I can print the list with no issue. Just a blank screen with the 'do'. #!/usr/bin/perl open FILE, "upslist.txt"; while ($line=<FILE>){ if ($line=~/^(.*?),(.*?)$/){ #print "ups:$1 string:$2\n"; do 'check_snmp_mgeups-0.1.pl -H $1 -C $2'; } ... (1 Reply)
Discussion started by: mrlayance
1 Replies

10. Programming

PERL: In a perl-scripttTrying to execute another perl-script that SETS SOME VARIABLES !

I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open()) I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies
All times are GMT -4. The time now is 11:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy