herhangi bir sonuç almak veya php dom nesnesi kullanarak xml düğüm nitelik getirilirken çıktının mümkün değil

2 Cevap php

Burada kullanarak ticketcity.xml dosya im bir örnek:

<Events Version="3.0" Method="GetEvents" StatusCode="0" StatusMsg="Success">
    −
    <Event ID="569402" Name="Hair" SeatingChart="http://www.ticketcity.com/images/seatingcharts/MARTINBECK_THEATRE_NYC.GIF" Page="http://www.ticketcity.com/theatre-tickets/broadway-tickets/hair-tickets/hair-tickets-al-hirschfeld-theatre-february-3-200pm.html" EventDateTime="02/03/2010 2:00PM">
    <Performer ID="463" Name="Hair" Primary="true"/>
    −
    <Venue ID="961" Name="Al Hirschfeld Theatre">
    <City ID="36469" Name="New York"/>
    <State ID="34" Abbr="NY" Name="New York"/>
    <Country ID="1" Abbr="US" Name="United States"/>
    </Venue>
    </Event>
    −
</Events>

ve php komut verileri almak için:

$ticketcity = new DOMDocument();
$ticketcity->load("ticketcity.xml");
if (empty($ticketcity))
 echo "there was some kind of issue fetching the document";
else { 
echo "xml loaded, beginning update<br>\n";

$events = $ticketcity->getElementsByTagName("Event");

$i=0;
foreach ($events as $event){
 echo $i."<br>\n";
 $eventid = $event->getAttribute('ID');
 $eventname = $event->getAttribute('Name');
 $eventmap = $event->getAttribute('SeatingChart');
 $eventpage = $event->getAttribute('Page');
 echo "$eventid, $eventname, $eventmap, $eventpage<br>\n";
 $i++;
}

Ben bazı çıktısı olurdu ki ben, sadece hata ayıklama için orada $ var ... Sorun bir şey yok olmasıdır. Ben "güncelleme
başlayan, yüklenen xml" dışında herhangi bir şey kesinlikle hiçbir çıktı almak

Komut herhangi bir basit olamazdı, ve başka bir XML dosyası ile çalışıyor, bu ve diğer xml dosyası arasındaki tek fark, diğer dosyanın veri düğüm değerleri içinde depolanan olmasıdır ve nitelikleri ... Ben gidiyorum değil Bu deli, ne eksik?

2 Cevap

Bunu yapmak için denemelisiniz:

$ticketcity = new DOMDocument();
if (!$ticketcity->load("ticketcity.xml"))
   echo "there was some kind of issue fetching the document";
else { 
   // your code...
}

$ticketcity her zaman sınıfın bir nesnesi içerecektir DOMDocument ama load returns false başarısızlık üzerinde:

Başarı ya da başarısızlık durumunda FALSE TRUE döndürür. Statik çağrılırsa, bir DOMDocument ve konular E_STRICT uyarı verir.

Ben sadece benim yerel makinede bu koştu ve iyi çalışıyor:

<?
$xml = '<Events Version="3.0" Method="GetEvents" StatusCode="0" StatusMsg="Success">
    −
    <Event ID="569402" Name="Hair" SeatingChart="http://www.ticketcity.com/images/seatingcharts/MARTINBECK_THEATRE_NYC.GIF" Page="http://www.ticketcity.com/theatre-tickets/broadway-tickets/hair-tickets/hair-tickets-al-hirschfeld-theatre-february-3-200pm.html" EventDateTime="02/03/2010 2:00PM">
    <Performer ID="463" Name="Hair" Primary="true"/>
    −
    <Venue ID="961" Name="Al Hirschfeld Theatre">
    <City ID="36469" Name="New York"/>
    <State ID="34" Abbr="NY" Name="New York"/>
    <Country ID="1" Abbr="US" Name="United States"/>
    </Venue>
    </Event>
    −
</Events>
';

$ticketcity = new DOMDocument();
$ticketcity->loadXML($xml);
if (empty($ticketcity))
 echo "there was some kind of issue fetching the document";
else { 
    echo "xml loaded, beginning update<br>\n";
    $events = $ticketcity->getElementsByTagName("Event");

    $i=0;
    foreach ($events as $event){
     echo $i."<br>\n";
     $eventid = $event->getAttribute('ID');
     $eventname = $event->getAttribute('Name');
     $eventmap = $event->getAttribute('SeatingChart');
     $eventpage = $event->getAttribute('Page');
     echo "$eventid, $eventname, $eventmap, $eventpage<br>\n";
     $i++;
    }
}

Ben bu belgeyi yüklemek olamazdı bile DOMDocument yine başka fıkra vuracaktır çünkü dosya, eksik sanıyorum. $ Ticketcity boş olmaz!