commander3 Posted March 6, 2008 Share Posted March 6, 2008 Hello , I have one XML file which is below... <TypeFile> <Type> <Manufacturer>LADA-VAZ</Manufacturer> <Model>110</Model> <TypeName>HB</TypeName> <TypeID>56326</TypeID> <BrakeSystem>LRT</BrakeSystem> <Generation>56326</Generation> <TypeInspectionDate>B</TypeInspectionDate> <DriveType value="EV">EV</DriveType> <TypeManfYear>2006</TypeManfYear> [b]<TrunkVol type="min">344</TrunkVol> <TrunkVol type="max">1300</TrunkVol>[/b] <SuspensionRear>yhdysheiluriakselisto,joustintuet, kierrejouset</SuspensionRear> <SuspensionFront>joustintuet, alatukivarret,kierrejouset,kallistuksenvakain</SuspensionFront> <SeatsBesideDriver>1</SeatsBesideDriver> <SeatsExclDriver>4</SeatsExclDriver> <SeatNumberTotal>5</SeatNumberTotal> <NoiseEmissionLevel>72</NoiseEmissionLevel> <Width>1680</Width> <Height>1420</Height> <Length>4265</Length> <CurbWeight>1115</CurbWeight> <MaxLoad>380</MaxLoad> <TotalWeight>1495</TotalWeight> <BodyType>Hatchback</BodyType> <RoofLoad>50</RoofLoad> <VehicleType>5</VehicleType> <VehicleClass>5</VehicleClass> <Emission type="CO2">180</Emission> <Acceleration>14.5</Acceleration> <MaxSpeed>167</MaxSpeed> [b]<EUEconomy type="city">10</EUEconomy> <EUEconomy type="road">6</EUEconomy> <EUEconomy type="combined">7.5</EUEconomy>[/b] <Camshafts value="N1">N1</Camshafts> <OctaneRecommendation value="95E">95E</OctaneRecommendation> <RingSize>5.0Jx13H2</RingSize> <Price>11990</Price> <Currency>EUR</Currency> <PriceListDate>15.1.2007</PriceListDate> <PriceType>OVH</PriceType> <PriceValidStart>15.1.2007</PriceValidStart> <ModelID>1396</ModelID> <UnlimitedBenefit>375</UnlimitedBenefit> <LimitedBenefit>210</LimitedBenefit> <Material> <MaterialURL>http://services.netwheels.fi/UudetAutotMat/Lada- Vaz_110_2006-HB-8V.jpg</MaterialURL> <MaterialType>JPEG</MaterialType> <MaterialClass>KUVA</MaterialClass> </Material> </Type> Here you will notice that Some of the tags are repeating.. like below <TrunkVol type="min">344</TrunkVol> <TrunkVol type="max">1300</TrunkVol> Now when i parsing the file.. Then i get only first tag value.. How to retrieve the 2nd tag value ? Code is (messy right now, but...) if (!($fp=@fopen("example.xml", "r"))) die ("Couldn't open XML."); $usercount=0; $userdata=array(); $state=''; function startElementHandler ($parser,$name,$attrib){ global $usercount; global $userdata; global $state; global $vals; if ($state == "TYPE") { $data = ereg_replace("(\r\n|\n|\r)", "<br>", $data); $data = addslashes($data); $data = strtolower($data); $values[$data] = mysql_escape_string($data); } switch ($name) { case $name=="Type" : { //////////////////////////////////////////////////////////////////////////////////////////// } default : {$state=$name;break;} } } function endElementHandler ($parser,$name){ global $usercount; global $userdata; global $state; $state=''; if($name=="TYPE") {$usercount++;} } // xml_parse_into_struct($parser, $string, $attrs, $vals, $index); function characterDataHandler ($parser, $data, $attrib, $value) { global $usercount; global $userdata; global $state; global $attrs; echo "$data<BR>"; echo "$state<BR>"; if (!$state) {return;} if ($state=="MANUFACTURER") { $userdata[$usercount]["Manufacturer"] = $data;} if ($state=="MODEL") { $userdata[$usercount]["Model"] = $data;} if ($state=="TYPENAME") { $userdata[$usercount]["TypeName"] = $data;} if ($state=="SERIES") { $userdata[$usercount]["series"] = $data;} if ($state=="TYPEID") { $userdata[$usercount]["TypeID"] = $data;} if ($state=="BRAKESYSTEM") { $userdata[$usercount]["BrakeSystem"] = $data;} if ($state=="GENERATION") { $userdata[$usercount]["Generation"] = $data;} if ($state=="TYPEINSPECTIONDATE") { $userdata[$usercount]["TypeInspectionDate"] = $data;} if ($state=="DRIVETYPE") { $userdata[$usercount]["DriveType"] = $data;} if ($state=="TYPEMANFYEAR") { $userdata[$usercount]["TypeManfYear"] = $data;} if ($state=="WHEELBASE") { $userdata[$usercount]["Wheelbase"] = $data;} if ($state=="TYRES") { $userdata[$usercount]["Tyres"] = $data;} if ($state=="FUELTANK") { $userdata[$usercount]["FuelTank"] = $data;} if ($state=="TRACKFRONT") { $userdata[$usercount]["TrackFront"] = $data;} if ($state=="TRACKREAR") { $userdata[$usercount]["TrackRear"] = $data;} if ($state=="TRUNKVOL") { $userdata[$usercount]["TrunkVol"] = $data;} if ($state=="SEATNUMBERTOTAL") { $userdata[$usercount]["SeatNumberTotal"] = $data;} if ($state=="WIDTH") { $userdata[$usercount]["Width"] = $data;} if ($state=="HEIGHT") { $userdata[$usercount]["Height"] = $data;} if ($state=="LENGTH") { $userdata[$usercount]["Length"] = $data;} if ($state=="CURBWEIGHT") {$userdata[$usercount]["CurbWeight"] = $data;} if ($state=="TOTALWEIGHT") {$userdata[$usercount]["TotalWeight"] = $data;} if ($state=="BODYTYPE") {$userdata[$usercount]["BodyType"] = $data;} if ($state=="VEHICLETYPE") {$userdata[$usercount]["VehicleType"] = $data;} if ($state=="VEHICLECLASS") { $userdata[$usercount]["VehicleClass"] = $data;} if ($state=="TRANSMISSIONTYPE") { $userdata[$usercount]["TransmissionType"] = $data;} if ($state=="GEARNUMBER") { $userdata[$usercount]["GearNumber"] = $data;} if ($state=="DOORNUMBER") { $userdata[$usercount]["DoorNumber"] = $data;} if ($state=="MOTORVOLCM3") { $userdata[$usercount]["MotorVolCm3"] = $data;} if ($state=="POWERHP") { $userdata[$usercount]["PowerHP"] = $data;} if ($state=="POWERKW") { $userdata[$usercount]["PowerKW"] = $data;} if ($state=="POWERRPM") { $userdata[$usercount]["PowerRPM"] = $data;} if ($state=="FUELTYPE") { $userdata[$usercount]["FuelType"] = $data;} if ($state=="EMISSION") { $userdata[$usercount]["Emission"] = $data;} if ($state=="ACCELERATION") { $userdata[$usercount]["Acceleration"] = $data;} if ($state=="MAXSPEED") { $userdata[$usercount]["MaxSpeed"] = $data;} if ($state=="CITY") { $userdata[$usercount]["city"] = $data;} if ($state=="EUECONOMY") { $userdata[$usercount]["EUEconomy"] = $data;} if ($state=="EUECONOMY") { $userdata[$usercount]["EUEconomy1"] = $data ;} if ($state=="EUECONOMY") { $userdata[$usercount]["EUEconomy2"] = $data;} if ($state=="EXISTENCESTART") { $userdata[$usercount]["ExistenceStart"] = $data;} if ($state=="PRICE") { $userdata[$usercount]["Price"] = $data;} if ($state=="CURRENCY") { $userdata[$usercount]["Currency"] = $data;} if ($state=="PRICELISTDATE") { $userdata[$usercount]["PriceListDate"] = $data;} if ($state=="PRICETYPE") { $userdata[$usercount]["PriceType"] = $data;} if ($state=="PRICEVALIDSTART") { $userdata[$usercount]["PriceValidStart"] = $data;} if ($state=="MODELID") { $userdata[$usercount]["ModelID"] = $data;} } if (!($xml_parser = xml_parser_create())) die("Couldn't create parser."); xml_set_element_handler( $xml_parser, "startElementHandler", "endElementHandler"); xml_set_character_data_handler( $xml_parser, "characterDataHandler"); //while( $data = fread($fp, 16384)){ while( $data = fread($fp, 8192)){ if(!xml_parse($xml_parser, $data, feof($fp))) { break;}} xml_parser_free($xml_parser); for ($i=0;$i<$usercount; $i++) { { { $count++; ///////////////////////////// // $Manufacturer = $userdata[$i]["Manufacturer"]; $Model = $userdata[$i]["Model"]; $TYPENAME = $userdata[$i]["TypeName"]; $SERIES = $userdata[$i]["series"]; $TypeID = $userdata[$i]["TypeID"]; $BrakeSystem = $userdata[$i]["BrakeSystem"]; $Generation = $userdata[$i]["Generation"]; $TypeInspectionDate = $userdata[$i]["TypeInspectionDate"]; $DriveType = $userdata[$i]["DriveType"]; $TypeManfYear = $userdata[$i]["TypeManfYear"]; $Wheelbase = $userdata[$i]["Wheelbase"]; $Tyres = $userdata[$i]["Tyres"]; $FuelTank = $userdata[$i]["FuelTank"]; $TrackFront = $userdata[$i]["TrackFront"]; $TrackRear = $userdata[$i]["TrackRear"]; $TrunkVol = $userdata[$i]["TrunkVol"]; $SeatNumberTotal = $userdata[$i]["SeatNumberTotal"]; $Width = $userdata[$i]["Width"]; $Height = $userdata[$i]["Height"]; $Length = $userdata[$i]["Length"]; $CurbWeight = $userdata[$i]["CurbWeight"]; $TotalWeight = $userdata[$i]["TotalWeight"]; $BodyType = $userdata[$i]["BodyType"]; $VehicleType = $userdata[$i]["VehicleType"]; $VehicleClass = $userdata[$i]["VehicleClass"]; $TransmissionType = $userdata[$i]["TransmissionType"]; $GearNumber = $userdata[$i]["GearNumber"]; $DoorNumber = $userdata[$i]["DoorNumber"]; $MotorVolCm3 = $userdata[$i]["MotorVolCm3"]; $PowerHP = $userdata[$i]["PowerHP"]; $PowerKW = $userdata[$i]["PowerKW"]; $PowerRPM = $userdata[$i]["PowerRPM"]; $FuelType = $userdata[$i]["FuelType"]; $Emission = $userdata[$i]["Emission"]; $Acceleration = $userdata[$i]["Acceleration"]; $MaxSpeed = $userdata[$i]["MaxSpeed"]; $City = $userdata[$i]["City"]; $Road = $userdata[$i]["Road"]; $EUEconomy = $userdata[$i]["EUEconomy"]; $EUEconomy1 = $userdata[$i]["EUEconomy1"]; $EUEconomy2 = $userdata[$i]["EUEconomy2"]; $ExistenceStart = $userdata[$i]["ExistenceStart"]; $Price = $userdata[$i]["Price"]; $Currency = $userdata[$i]["Currency"]; $PriceListDate = $userdata[$i]["PriceListDate"]; $PriceType = $userdata[$i]["PriceType"]; $PriceValidStart = $userdata[$i]["PriceValidStart"]; $ModelID = $userdata[$i]["ModelID"]; /////////////////////////////////////////////////////////////////////////////// print "<hr><FONT SIZE=\"2\" FACE=\"VERDANA\">"; echo "<br>Manufacturer = $Manufacturer"; echo "<br>Model = $Model','"; echo "<br>Typename = $TYPENAME','"; echo "<br>Series = $SERIES','"; echo "<br>Type ID = $TypeID','"; print "<hr>"; echo "<br>Brakesystem = $BrakeSystem','"; echo "<br>Generation = $Generation','"; echo "<br>TypeInspectionDate = $TypeInspectionDate','"; echo "<br>DriveType = $DriveType','"; echo "<br>TypeManfYear = $TypeManfYear','"; echo "<br>Wheelbase = $Wheelbase','"; echo "<br>Tyres = $Tyres','"; Print "<hr>"; echo "<br>FuelTank = $FuelTank','"; echo "<br>TrackFront = $TrackFront','"; echo "<br>TrackRear = $TrackRear','"; echo "<br>TrunkVol = $TrunkVol','"; echo "<br>SeatNumberTotal = $SeatNumberTotal','"; echo "<br>Width = $Width','"; echo "<br>Height = $Height','"; echo "<br>Length = $Length','"; echo "<br>CurbWeight = $CurbWeight','"; echo "<br>TotalWeight = $TotalWeight','"; print "<hr>"; echo "<br>BodyType = $BodyType','"; echo "<br>VehicleType = $VehicleType','"; echo "<br>VehicleClass = $VehicleClass','"; echo "<br>TransmissionType = $TransmissionType','"; echo "<br>GearNumber = $GearNumber','"; echo "<br>DoorNumber = $DoorNumber','"; print "<hr>"; echo "<br>MotorVolCm3 = $MotorVolCm3','"; echo "<br>PowerHP = $PowerHP','"; echo "<br>PowerKW = $PowerKW','"; print "<hr>"; echo "<br>PowerRPM = $PowerRPM','"; echo "<br>FuelType = $FuelType','"; echo "<br>Emission = $Emission','"; print "<hr>"; echo "<br>Acceleration = $Acceleration','"; echo "<br>MaxSpeed = $MaxSpeed','"; echo "<br>EUEconomy CITY = $EUEconomy','"; echo "<br>EUEconomy ROAD = $EUEconomy1','"; echo "<br>EUEconomy CITY = $City','"; echo "<br>EUEconomy ROAD = $Road','"; echo "<br>EUEconomy COMBINED = $EUEconomy2','"; echo "<br>ExistenceStart = $ExistenceStart','"; print "<hr>"; echo "<br>Price = $Price','"; echo "<br>Currency = $Currency','"; echo "<br>PriceListDate = $PriceListDate','"; echo "<br>PriceType = $PriceType','"; echo "<br>PriceValidStart = $PriceValidStart','"; echo "<br>ModelID = $ModelID','"; print "<hr>"; print "</FONT><hr>"; } } } AAAAAGHH!! I dont understand how to get right values. If somebody can help?? Quote Link to comment Share on other sites More sharing options...
Sulman Posted March 6, 2008 Share Posted March 6, 2008 What version of PHP are you using? Quote Link to comment Share on other sites More sharing options...
commander3 Posted March 6, 2008 Author Share Posted March 6, 2008 What version of PHP are you using? Version is: 4.3.9 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.