Sponsored Content
Top Forums Programming help me with perl script xml processing Post 302580722 by pavani reddy on Friday 9th of December 2011 11:33:39 AM
Old 12-09-2011
help me with perl script xml processing

Hi everyone,
I have Xml files in a folder, I need to extract some attribute values form xml files and store in a hash. My xml file look like this.


Code:
<?xml version="1.0" encoding="UTF-8"?>

<Servicelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///files/service.xsd">

<Service Num="B7a" Name="temperature sensor">

<Des>It delivers actual temperature in the form ov Volts</Des>

<Customermodules>

   <Softwaremodule Service="ADC" Path="/main/ADCservice.xml"/>

</Customermodules>

<Suppliermodules>

   <Softwaremodule Service="input" Path="/main/inputservice.xml"/>
   <Softwaremodule Service="signal" Path="/main/signalservice.xml"/>
   <Hardwaremodule Type="engine"  Nr="18" Servicenum="1" Path="/main/engineservice.xml"/>
   <Hardwaremodule Type="motor"   Nr="7" Servicenum="1" Path="/main/motorservice.xml"/> 
   <Hardwaremodule Type="supply" Nr="1" Servicenum="1" Path="/main/supplyservice.xml"/>

</Suppliermodules>

</Service>

In hash service num attribute is the key and Customermodules ,Suppliermodules attributes are the values.
for example In the xml file B7a is the key and its Customermodules ,Suppliermodules attribute values are the values to the key, like that.

I tried like this but Its not working
Code:
#!/usr/bin/perl
use warnings;
use strict;
use XML::LibXML;
use Carp;
use File::Find;
use File::Spec::Functions qw( canonpath );
use XML::LibXML::Reader;  
my %hash;
my @ARGV ="C:/Main";
die "Need directories\n" unless @ARGV;
find(
    sub {
        return unless ( /(_service\.xml)$/ and -f );
        extract_information();
        return;
    },
    @ARGV
);

sub extract_information {
    my ($path $hash) = $_;
	
if( my $reader = XML::LibXML::Reader->new( location => $path )){

        while ( $reader->nextElement( 'Service' )) {
         my $elem = $reader->getAttribute( 'Id');
         
		 $reader->nextElement( 'Customermodules' );         
		  my $elem1 = $reader->getAttribute( 'Service');
		 
		  $reader->nextElement( 'Suppliermodules' );         
		  my $elem2 = $reader->getAttribute('Service');
		  
		   $hash->{$elem} = $elem1;
		   push @{$hash{$elem}}, '$elem2';
}
						}
 return;
 }
  print my $num=keys%hash;

Can any one help me with the script, that extract attributes from xml file and store in a hash,
I need to get all attributes in Suppliermodules( type, nr), no need of path attribute at any where.
Please help me with this problem,i am learning perl scripting language.

Thanks in advance.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell Script syntax for XML processing

Hi All, I am new to Shell scripting. I have a log file containing XML Messages.Each XML Message is accompanied with a timestamp.I need to count the the number of messages that get logged in a particular timeinterval.Is there any command/Syntax to achieve this. Any code/example is... (5 Replies)
Discussion started by: vignesh53
5 Replies

2. Shell Programming and Scripting

perl script for file processing

Aim: To scan a file and ignore all characters that has an ASCII value from 0 to 31 and 127 to 255 and accept only those characters having an ASCII between 32 and 126. Script: #!/usr/local/bin/perl $filename = "$ARGV"; if (-e $filename) { open(OUT, "${filename}") || die "can't... (10 Replies)
Discussion started by: SEEHTAS
10 Replies

3. Shell Programming and Scripting

awk, perl Script for processing a single line text file

I need a script to process a huge single line text file: The sample of the text is: "forward_inline_item": "Inline", "options_region_Australia": "Australia", "server_event_err_msg": "There was an error attempting to save", "Token": "Yes", "family": "Family","pwd_login_tab": "Enter Your... (1 Reply)
Discussion started by: hmsadiq
1 Replies

4. Shell Programming and Scripting

Simple Script needed for Processing CSV file perl

I am new to perl, and need a script to pull a CSV file, strip out 2 leading columns, and 2 ending columns, and resave the file in a new location. The file is basic and has less than 10,000 records. Secondly, can I schedule perl scripts to run daily? Can someone provide the basic script to... (1 Reply)
Discussion started by: cobbjob
1 Replies

5. Shell Programming and Scripting

Perl script to extract 'ID' From XML File

File1.xml <?xml version.........> - <abcd:abcd_list version="1" www.john_uncle's_server.com" xmlns: - <device id="100"> <firmware>12.4(3d)</firmware> <location id="500">Sitting Room</location> </device> - <device id="101"> <firmware>12.4(3d)</firmware> <location id="501">Class... (1 Reply)
Discussion started by: sureshcisco
1 Replies

6. Shell Programming and Scripting

How to create a xml file using Perl Script

Hi All, I have some data which needs to be saved in the xml file format.Can you guys please let me know how to do this using perl script. NOTE: the template of the xml file shall be depending on validation of the data done for some requirements. Basically to summarise, the fields in the xml... (5 Replies)
Discussion started by: girish.raos
5 Replies

7. Shell Programming and Scripting

How to get value from xml node using sed/perl/script?

hello, new to this forum. but i have a requirement to extract the value from multiple xml node and print out the values to new file with comma seperated. would like to know how this would be done using either sed/perl or some unix script. an example would be tremendous... sample input file:... (2 Replies)
Discussion started by: davidsouk
2 Replies

8. Shell Programming and Scripting

perl script processing error

open(IN,"input_file") or die "Can't open Input file.\n"; while (<IN>) { chomp; $line = $_; if($line != '') { print "\nprocessing $line\n"; $size = 0; $hrid = $line; @project_id_array = null; $size = @project_id_array;... (3 Replies)
Discussion started by: vishwakar
3 Replies

9. Shell Programming and Scripting

perl script to update a xml file

Hi experts, I have a set of xml files in folder which has the below field. <mm:sessionID>157.235.206.12900397BE4:A</mm:sessionID>, I need to update this field regularly with new session id, which I have it from a login file. Can anyone tell me how to add a new value in <mm:sessionID>... (3 Replies)
Discussion started by: amvarma77
3 Replies

10. Shell Programming and Scripting

Perl script required for processing the data

I have following result.log file (always has 2 lines) which I need to process, cat result.log name.cmd.method,"result","abc","xyz"; name="hello,mine.12345,"&"tree"&" xyz "&" tree "&" xyz", data="way,"&" 1"&"rate-me"&"1"&"rate-me",str="",ret=""; now I need to extract the strings/data as... (4 Replies)
Discussion started by: perlDiva
4 Replies
Locale::Po4a::Guide(3)					User Contributed Perl Documentation				    Locale::Po4a::Guide(3)

NAME
Locale::Po4a::Guide - convert Guide XML documents from/to PO files DESCRIPTION
The po4a (PO for anything) project goal is to ease translations (and more interestingly, the maintenance of translations) using gettext tools on areas where they were not expected like documentation. Locale::Po4a::Guide is a module to help in the translation of the Gentoo Linux documentation in the Guide XML format into other [human] languages. This format is documented here: http://www.gentoo.org/doc/en/xml-guide.xml STATUS OF THIS MODULE
This module is fully functional, as it relies in the Locale::Po4a::Xml module. This only defines the translatable tags and attributes. The only known issue is that it doesn't include files with the <include href="..."> tag, but you can translate all those files alone, and it's usually better to have them separated. SEE ALSO
Locale::Po4a::TransTractor(3pm), Locale::Po4a::Xml(3pm), po4a(7) AUTHORS
Jordi Vilalta <jvprat@gmail.com> COPYRIGHT AND LICENSE
Copyright (c) 2004 by Jordi Vilalta <jvprat@gmail.com> This program is free software; you may redistribute it and/or modify it under the terms of GPL (see the COPYING file). perl v5.16.3 2014-06-10 Locale::Po4a::Guide(3)
All times are GMT -4. The time now is 05:07 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy