læse xml og attributer
Nu har jeg siddet hele natten og prøvet mig frem. Kan simpelthen ikke få det til at virke..Her er min kode:
$xmlFile = "film2.xml";
echo "<table border=\"1\">";
class RSSParser
{
var $insideitem = false;
var $title = "";
var $genre = "";
var $id = "";
var $sprog = "";
var $collectionnr = "";
var $countryoforigin = "";
var $productionyear = "";
var $released = "";
var $runningtime = "";
var $region = "";
var $studio = "";
var $audioformat = "";
var $subtitle = "";
var $overview = "";
var $lastedited = "";
var $actors = "";
function startElement($parser, $tagName, $attrs)
{
if ($this->insideitem)
{
$this->tag = $tagName;
}
elseif ($tagName == "DVD")
{
$this->insideitem = true;
}
}
function unhtmlspecialchars( $string )
{
$string = str_replace ( '&', '&', $string );
$string = str_replace ( ''', '\'', $string );
$string = str_replace ( '"', '\"', $string );
$string = str_replace ( '<', '<', $string );
$string = str_replace ( '>', '>', $string );
return $string;
}
function endElement($parser, $tagName)
{
if ($tagName == "EVENTS")
{
$billedeurl = substr(trim($this->id), 0, 2);
echo "<tr>";
echo "<td width=\"100\"> <img src=\"http://www.invelos.com/mpimages/" . $billedeurl . "/" . trim($this->id) . "f.jpg\"> </td>";
echo "<td width=\"300\">" . trim($this->title) . " </td>";
echo "<td width=\"250\"> " . trim($this->genre) . "</td>";
echo "<td width=\"250\"> " . trim($this->sprog) . "</td>";
echo "<td width=\"250\"> " . trim($this->collectionnr) . "</td>";
echo "<td width=\"250\"> " . trim($this->countryoforigin) . "</td>";
echo "<td width=\"250\"> " . trim($this->productionyear) . "</td>";
//echo "<td width=\"250\"> " . trim($this->released) . "</td>";
echo "<td width=\"250\"> " . trim($this->runningtime) . "</td>";
//echo "<td width=\"250\"> " . trim($this->region) . "</td>";
//echo "<td width=\"250\"> " . trim($this->studio) . "</td>";
//echo "<td width=\"250\"> " . trim($this->audioformat) . "</td>";
echo "<td width=\"250\"> " . trim($this->subtitle) . "</td>";
//echo "<td width=\"250\"> " . trim($this->overview) . "</td>";
echo "<td width=\"250\"> " . trim($this->lastedited) . "</td>";
echo "<td width=\"250\"> " . trim($this->actors) . "</td>";
echo "</tr>";
//Osv....
$this->title = "";
$this->genre = "";
$this->id = "";
$this->sprog = "";
$this->collectionnr = "";
$this->countryoforigin = "";
$this->productionyear = "";
$this->released = "";
$this->runningtime = "";
$this->region = "";
$this->studio = "";
$this->audioformat = "";
$this->subtitle = "";
$this->overview = "";
$this->lastedited = "";
$this->actors = "";
$this->insideitem = false;
}
}
function characterData($parser, $data)
{
if ($this->insideitem)
{
switch ($this->tag)
{
case "TITLE":
$this->title .= $data;
break;
case "GENRE":
$this->genre .= $data;
break;
case "ID":
$this->id .= $data;
break;
case "AUDIOCONTENT":
$this->sprog .= $data;
break;
case "COLLECTIONNUMBER":
$this->collectionnr .= $data;
break;
case "COUNTRYOFORIGIN":
$this->countryoforigin .= $data;
break;
case "PRODUCTIONYEAR":
$this->productionyear .= $data;
break;
case "RELEASED":
$this->released .= $data;
break;
case "RUNNINGTIME":
$this->runningtime .= $data;
break;
case "REGION":
$this->region .= $data;
break;
case "STUDIO":
$this->studio .= $data;
break;
case "AUDIOFORMAT":
$this->audioformat .= $data;
break;
case "SUBTITLE":
$this->subtitle .= $data;
break;
case "OVERVIEW":
$this->overview .= $data;
break;
case "LASTEDITED":
$this->lastedited .= $data;
break;
case "ACTORS":
$this->actors .= $data;
break;
}
}
}
}
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser,XML_OPTION_TARGET_ENCODING,'ISO-8859-1');
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$fp = fopen($xmlFile,"r") or die("Error reading XML data.");
while ($data = fread($fp, 4096))
{
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
fclose($fp);
xml_parser_free($xml_parser);
echo "</table>";
Mit spørgsmål er så hvordan jeg læser en attribut der ikke ligger i elementet DVD.
her kommer den xml jeg henter fra. Det er så ACTOR jeg gerne vil kunne hente fra.
- <DVD>
<ProfileTimestamp>2007-09-10T19:19:13.000Z</ProfileTimestamp>
<ID>5706102329531.14</ID>
- <MediaTypes>
<DVD>True</DVD>
<HDDVD>False</HDDVD>
<BluRay>False</BluRay>
</MediaTypes>
<UPC>5-706102-329531</UPC>
<CollectionNumber>1</CollectionNumber>
<CollectionType>Owned</CollectionType>
<Title>Flådens Friske Fyre</Title>
<DistTrait />
<OriginalTitle />
<CountryOfOrigin>Denmark</CountryOfOrigin>
<ProductionYear>1965</ProductionYear>
<Released>2004-10-18</Released>
<RunningTime>98</RunningTime>
<Rating>A</Rating>
<CaseType>Keep Case</CaseType>
- <Genres>
<Genre>Comedy</Genre>
</Genres>
- <Regions>
<Region>2</Region>
</Regions>
- <Format>
<FormatAspectRatio>1.66</FormatAspectRatio>
<FormatVideoStandard>PAL</FormatVideoStandard>
<FormatLetterBox>True</FormatLetterBox>
<FormatPanAndScan>False</FormatPanAndScan>
<FormatFullFrame>False</FormatFullFrame>
<Format16X9>False</Format16X9>
<FormatDualSided>False</FormatDualSided>
<FormatDualLayered>True</FormatDualLayered>
</Format>
- <Features>
<FeatureSceneAccess>True</FeatureSceneAccess>
<FeatureCommentary>False</FeatureCommentary>
<FeatureTrailer>True</FeatureTrailer>
<FeaturePhotoGallery>True</FeaturePhotoGallery>
<FeatureDeletedScenes>False</FeatureDeletedScenes>
<FeatureMakingOf>False</FeatureMakingOf>
<FeatureProductionNotes>True</FeatureProductionNotes>
<FeatureGame>False</FeatureGame>
<FeatureDVDROMContent>False</FeatureDVDROMContent>
<FeatureMultiAngle>False</FeatureMultiAngle>
<FeatureMusicVideos>False</FeatureMusicVideos>
<FeatureInterviews>False</FeatureInterviews>
<FeatureStoryboardComparisons>False</FeatureStoryboardComparisons>
<FeatureOuttakes>False</FeatureOuttakes>
<FeatureClosedCaptioned>False</FeatureClosedCaptioned>
<FeatureTHXCertified>False</FeatureTHXCertified>
<OtherFeatures>Bioprogram, Sangperler</OtherFeatures>
</Features>
- <Studios>
<Studio>Merry Film</Studio>
<Studio>Scanbox Entertainment</Studio>
</Studios>
- <Audio>
- <AudioTrack>
<AudioContent>Danish</AudioContent>
<AudioFormat>Dolby Digital Mono</AudioFormat>
</AudioTrack>
</Audio>
- <BoxSet>
<Parent />
<Contents />
</BoxSet>
- <Subtitles>
<Subtitle>Danish</Subtitle>
<Subtitle>Norwegian</Subtitle>
<Subtitle>Swedish</Subtitle>
</Subtitles>
<SRP DenominationType="DKK" DenominationDesc="Denmark (Krone)" FormattedValue="kr149,95">149.95</SRP>
- <Actors>
<Actor FirstName="Dirch" MiddleName="" LastName="Passer" BirthYear="0" Role="Valdemar Jensen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Ghita" MiddleName="" LastName="Nørby" BirthYear="0" Role="Hanne Hansen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Ove" MiddleName="" LastName="Sprogøe" BirthYear="0" Role="Knud Hansen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Paul" MiddleName="" LastName="Hagen" BirthYear="0" Role="Svend Nielsen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Hans" MiddleName="W." LastName="Petersen" BirthYear="0" Role="Peter Hansen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Carl" MiddleName="" LastName="Ottosen" BirthYear="0" Role="Kompagnichef" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Kai" MiddleName="" LastName="Holm" BirthYear="0" Role="Fiskeeksportør" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Jan" MiddleName="" LastName="Priiskorn-Schmidt" BirthYear="0" Role="Jan Hansen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Karl" MiddleName="" LastName="Stegger" BirthYear="0" Role="Bådsmanden" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Preben" MiddleName="" LastName="Mahrt" BirthYear="0" Role="Chefen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Sigrid" MiddleName="" LastName="Horne-Rasmussen" BirthYear="0" Role="Frk. Mortensen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Bent" MiddleName="" LastName="Vejlby" BirthYear="0" Role="Befalingsmand" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Katja" MiddleName="" LastName="Miehe-Renard" BirthYear="0" Role="Lise" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Axel" MiddleName="" LastName="Strøbye" BirthYear="0" Role="Telegrafist" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Gyda" MiddleName="" LastName="Hansen" BirthYear="0" Role="Karen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Hugo" MiddleName="" LastName="Herrestrup" BirthYear="0" Role="Anton Nicholaisen" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Jesper" MiddleName="" LastName="Langberg" BirthYear="0" Role="Kok" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Svend" MiddleName="" LastName="Bille" BirthYear="0" Role="Karlsen - overtjener på færge" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Bjørn" MiddleName="" LastName="Spiro" BirthYear="0" Role="Kaptajn på færge" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Holger" MiddleName="" LastName="Vistisen" BirthYear="0" Role="Styrmand på færge" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Kirsten" MiddleName="" LastName="Passer" BirthYear="0" Role="Svends venindes søster" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Valsø" MiddleName="" LastName="Holm" BirthYear="0" Role="Billardspiller" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Arthur" MiddleName="" LastName="Jensen" BirthYear="0" Role="Bankdirektør" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Christine" MiddleName="" LastName="Broe" BirthYear="0" Role="Jans pige" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Bent" MiddleName="" LastName="Werther" BirthYear="0" Role="Kok" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Basse" MiddleName="" LastName="Lorentzen" BirthYear="0" Role="Bornholmeren" CreditedAs="" Voice="False" Uncredited="False" />
<Actor FirstName="Viggo" MiddleName="" LastName="Hansen" BirthYear="0" Role="Mariner" CreditedAs="" Voice="False" Uncredited="False" />
</Actors>
- <Credits>
<Credit FirstName="Finn" MiddleName="" LastName="Henriksen" BirthYear="0" CreditType="Direction" CreditSubtype="Director" CreditedAs="" />
<Credit FirstName="Carl" MiddleName="" LastName="Ottosen" BirthYear="0" CreditType="Writing" CreditSubtype="Screenwriter" CreditedAs="" />
<Credit FirstName="Dirch" MiddleName="" LastName="Passer" BirthYear="0" CreditType="Production" CreditSubtype="Producer" CreditedAs="" />
<Credit FirstName="Henrik" MiddleName="" LastName="Sandberg" BirthYear="0" CreditType="Production" CreditSubtype="Producer" CreditedAs="" />
<Credit FirstName="Henning" MiddleName="" LastName="Bendtsen" BirthYear="0" CreditType="Cinematography" CreditSubtype="Cinematographer" CreditedAs="" />
<Credit FirstName="Maj" MiddleName="" LastName="Soya" BirthYear="0" CreditType="Film Editing" CreditSubtype="Film Editor" CreditedAs="" />
<Credit FirstName="Svend" MiddleName="" LastName="Asmussen" BirthYear="0" CreditType="Music" CreditSubtype="Composer" CreditedAs="" />
<Credit FirstName="Jon" MiddleName="" LastName="Branner" BirthYear="0" CreditType="Sound" CreditSubtype="Sound Editor" CreditedAs="" />
<Credit FirstName="Erik" MiddleName="" LastName="Aaes" BirthYear="0" CreditType="Art" CreditSubtype="Production Designer" CreditedAs="" />
</Credits>
<Overview>Tre unge fiskere - Svend, Knud og Valdemar - har købt sig en kutter. Kort efter bliver de alle tre indkaldt til Marinen for at aftjene deres værnepligt på det gode skib Triton. Med de tre venner ombord sejler Triton de danske farvande tyndt. Men banken forlanger penge. Kutteren skal betales. Gode råd er dyre og et forrygende kapløb med tiden begynder... Saltvand, skumsprøjt, højt humør, et hav af friske marinere og en pige i hver en havn. Hvad mere kan man forlange?</Overview>
- <Discs>
- <Disc>
<DescriptionSideA>Main Feature</DescriptionSideA>
<DescriptionSideB />
<DiscIDSideA>620837C6AD9C7725</DiscIDSideA>
<DiscIDSideB />
<LabelSideA>DVDVolume</LabelSideA>
<LabelSideB />
<DualLayeredSideA>True</DualLayeredSideA>
<DualLayeredSideB>False</DualLayeredSideB>
<DualSided>False</DualSided>
<Location />
<Slot />
</Disc>
</Discs>
<SortTitle>Flådens Friske Fyre</SortTitle>
<LastEdited>2007-10-09T06:08:12.000Z</LastEdited>
<WishPriority>0</WishPriority>
- <PurchaseInfo>
<PurchasePrice DenominationType="USD" DenominationDesc="United States (Dollar)" FormattedValue="$0,00">0</PurchasePrice>
<PurchasePlace />
<PurchasePlaceType />
<PurchasePlaceWebsite />
<PurchaseDate>2007-10-09</PurchaseDate>
</PurchaseInfo>
<Review Film="0" Video="0" Audio="0" Extras="0" />
<Events />
- <LoanInfo>
<Loaned>False</Loaned>
</LoanInfo>
</DVD>
