
tiffbrink
New User
Mar 31, 2008, 1:41 PM
Post #1 of 3
(1349 views)
|
|
XML::Parser help
|
Can't Post
|
|
In the case that there are two cells under one row, I can only read the first cell. If anyone thinks they know how to deal with this please let me know...or another place that I can go to get help? #XML code: <Row> <Cell><Data ss:Type="String">Loved</Data></Cell> <Cell ss:Index="3"><Data ss:Type="Number">3.0</Data></Cell> </Row> <Row> <Cell ss:MergeAcross="1"><Data ss:Type="String">12-18 months</Data></Cell> </Row> #Perl code: use XML::Parser; $xp=new XML::Parser(); $xp->setHandlers(Start => \&start, End => \&end, Char => \&cdata); $xp->parsefile("test.xml"; $flag=$hst=$hster=$hsted=0; $manu=$prod=$image=$desc=$price=$cat=0; $ctag=0; sub start(){ my ($p, $name, %attr) = @_; $ctag = lc($name); } sub cdata(){ my ($parser, $target, $data) = @_; if (lc($target) == "cell"{ if (($target=~/\w|\d/) && ($target ne "False" && ($target !~ /#/)){ push @array, $target; } } } sub end(){ my ($p, $name) = @_; $ctag = lc($name); } foreach $a (@array){ print $a."<br>"; } #OUTPUT: Loved 12-18 months
|