On Thu, 2008-09-25 at 14:14 +0300, Vyacheslav Karamov wrote: > Paolo Gianrossi пишет: > > On Thu, 2008-09-25 at 13:00 +0300, Vyacheslav Karamov wrote: > > > >> Paolo Gianrossi пишет: > >> > >>> On Thu, 2008-09-25 at 12:03 +0300, Vyacheslav Karamov wrote: > >>> > >>> > >>>> Hi All! > >>>> > >>>> I need to parse XML with XML::Parser::Expat and make XML tree with > >>>> Tree::Simple. > >>>> But I need to store tag value and its attributes. But > >>>> Tree::Simple->setNodeValue() accepts single scalar (value itself). > >>>> How to create something like this? > >>>> > >>>> struct > >>>> { > >>>> $value; > >>>> %attributes; > >>>> } $nodeValue; > >>>> > >>>> Tree::Simple->setNodeValue( $nodeValue); > >>>> > >>>> > >>>> The pseudo code above shows what I actually need. But I don't know how > >>>> to implement it. > >>>> > >>>> > >>> Don't know about xml, but based on your code, it seems like you need a > >>> reference. > >>> > >>> Something like > >>> > >>> my $nodeValue = {value=>$value, attributes=>\%attributes}; > >>> > >>> should do the trick. > >>> > >>> perldoc perlreftut might give insights. > >>> > >>> Hope this helps > >>> > >>> cheers > >>> paolino > >>> > >>> > >>> > >>> > >>> > >> but how can I get access to attributes? > >> > >> print $nodeValue->{"value"}, " ", "\n" if defined > >> $nodeValue->{"value"}; #ok > >> print $nodeValue->{"attrubutes"}, " ", "\n" if defined > >> $nodeValue->{"attrubutes"}; #fail > >> > > > > watch the typo! > > > > print $nodeValue->{"attributes"}, " ", "\n" if defined > > $nodeValue->{"attributes"}; > > > > > > paolino > > > > > >> > What did you mean? > Attributes corresponds XML attributes > in my particular case > <child1 acronym_check="1" check_author="1"> > or <child1> > i.e. some nodes could have some attributes.
you wrote attrubutes. If you meant attributes, with an i, then that might be the issue. Also, print $nodeValue->{attributes} won't give you the attributes, but some obscure reference pointer. To see inside, use Data::Dumper; print Dumper($nodeValue->{attributes}); to access them, $nodeValue->{attributes}->{attribute_key} should make it. cheers paolino > -- Paolo Gianrossi Softeco Sismat S.p.A. - R&D Division via De Marini 1, 16149 Genova Tel: +39 010 6026 332 - Fax: +39 010 6026 350 E-Mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/