Temel SimpleXML çalışma örnek?

5 Cevap php

PHP SimpleXML ile pek çok sorun var gibi görünüyor. Windows üzerinde php son sürümünü çalıştıran ve ben sadece SimpleXML temel örnekler belgelerinde olarak çalışmak için alınamıyor.

Benim xml dosyası:

<?xml version="1.0" encoding="ISO-8859-1"?>
<programme> 
  <title>Billy Bushwaka</title> 
  <episodeNumber>2</episodeNumber> 
  <description>Billy Bushwaka entertains</description> 
  <url>play.swf</url> 
</programme> 

Benim PHP programı:

<?php
$xml = simplexml_load_file("local.xml");

$result = $xml->xpath("//programme");
echo "Title: " . $result . "</br>";
?>

Ben olsun tüm şudur:

Başlık: Dizi

Nasıl ": Billy Bushwaka Başlık" alabilirim?

XML veri hiçbir tekrarlar vardır bu yüzden diziler kullanmak istemiyorum.

5 Cevap

SimpleXML 101

  1. Her şeyden önce, her zaman temsil düğümden sonra PHP değişkenleri isim.

    // the root node is <programme/>
    $programme = simplexml_load_file("local.xml");
    
  2. Çocuk (düğümler) onlar nesne özellikleri sanki erişim.

    echo $programme->title;
    
  3. Aynı adı kullanarak birden fazla çocuk varsa, onların 0-tabanlı konumunu belirleyebilirsiniz

    // first <title/> child
    echo $programme->title[0];
    
    
    // create or change the value of the second <title/> child
    $programme->title[1] = 'Second title';
    
  4. Nitelikleri erişim onlar Dizi anahtarları sanki

    // <mynode attr="attribute value" />
    echo $mynode['attr'];
    
  5. XPath her zaman bir dizi döndürür.


Geri durumda, o <title /> düğüm erişmek için en iyi yol olacaktır

$programme = simplexml_load_file("local.xml");
echo "Title: " . $programme->title;

Her şeyden önce, simplexml xpath yöntem her zaman maçları bir dizi döndürür. (Vaka sonuç boş bir dizi olduğu hatta 0) sadece 1 maç olsa bile. Eğer çıktıda "Array" almak nedeni budur.

Sadece başlık istiyorsanız İkincisi, o zaman XPath sorgusu değiştirmeniz gerekir:

$result = $xml->xpath("//programme/title");
echo "Title: " . $result[0] . "</br>";

Muhtemelen //programme/title için XPath değiştirin ve sonra echo $result[0] ya da ve eko $result[0]->title olarak XPath'i bırakmalısınız. var_dump her zaman size yardımcı olacaktır unutmayın.

Ben seni istiyorum:

$result = $xml->xpath("/programme/title");
echo "Title: " . $result[0] . "</br>";

Aşağıda XPath'ın kullanımını göstermek bağlantıdır. Bütün örnekler XML karşı değerlendirilir:

http://123beginners.com/subjects/php/xpath-examples.html