PHP SimpleXML ile bazı XML Elements ayıklanıyor

1 Cevap php

Ben SimpleXML kullanarak XML bu parça ayrıştırma bazı sorunlar yaşıyorum. Altında tek Serisi elemanı ve Bölüm elemanları değişken bir dizi her zaman vardır. Ben bu yüzden bir tablodaki Serisi verileri saklamak ve başka bir tablodaki tüm Episode veri olabilir XML ayrıştırmak istiyorum.

XML:

<Data>
    <Series>
        <id>80348</id>
        <Genre>|Action and Adventure|Comedy|Drama|</Genre>
        <IMDB_ID>tt0934814</IMDB_ID>
        <SeriesID>68724</SeriesID>
        <SeriesName>Chuck</SeriesName>
        <banner>graphical/80348-g.jpg</banner>
    </Series>
    <Episode>
        <id>935481</id>
        <Director>Robert Duncan McNeill</Director>
        <EpisodeName>Chuck Versus the Third Dimension 2D</EpisodeName>
        <EpisodeNumber>1</EpisodeNumber>
        <seasonid>27984</seasonid>
        <seriesid>80348</seriesid>
    </Episode>
    <Episode>
        <id>935483</id>
        <Director>Robert Duncan McNeill</Director>
        <EpisodeName>Buy More #15: Employee Health</EpisodeName>
        <EpisodeNumber>2</EpisodeNumber>
        <seasonid>27984</seasonid>
        <seriesid>80348</seriesid>
    </Episode>
</Data>

Ben sadece ilk Serisi öğe ve alt düğümlerin erişmek veya Bölüm öğeleri boyunca yineleme çalıştığınızda sadece çalışmıyor. Ben de SimpleXML ile DOMDocument kullanmayı denedi, ama bu hiç işe alamadım.

PHP Code:

<?php
    if(file_exists('en.xml'))
    {
        $data = simplexml_load_file('en.xml');
        foreach($data as $series)
        {
            echo 'id: <br />' . $series->id;
            echo 'imdb: <br />' . $series->IMDB_ID;
        }
    }
?>

Output:

id:80348
imdb:tt0934814
id:935481
imdb:
id:1534641
imdb:

1 Cevap

Ben sadece yapıyordum aptalca bir hata keşfetti.

PHP kodu böyle olmalıydı:

<?php
    if(file_exists('en.xml'))
    {
        $data = simplexml_load_file('en.xml');
        foreach($data->Series as $series)
        {
            echo 'id: <br />' . $series->id;
            echo 'imdb: <br />' . $series->IMDB_ID;
        }
    }
?>

Ben (ve işe yaramadı) bu çalıştı ilk kez ben kullanıyordum;

$data->series as $series

Yani sorun bir sermaye 'S' oldu.