nasıl php xml verilerini ayrıştırmak

4 Cevap php

Ben bu işe öğrenmek için çalışıyorum

Test amaçlı, ben iki web sitesi yaptık.

Bir diğer bir REST hizmet çağırıyor

Ben file_get_contents ile xml veri çekme

Bunu echo eğer, ben veri kapalı bir dize görebilirsiniz.

Ama nasıl üzerinde simpelxml kullanabilirsiniz düğümler kendileri verileri ayıklamak?

If I use simplexml_load_file($url), I get some error saying xml declaration only allowed at the start off the document?

Benim testfile bu var

<?php

$url='http://www.woonbel.nl/gps/setgpsloc';
//not working
$xml =simplexml_load_file($url);   

print_r($xml);

//just a string
$xml=file_get_contents($url);
echo "<h3>$xml</h3><br>";

?>

Bu gönderdiğim xml oldu.

I send this from a class file that I included in the top off my php file if I am sure the webservice is called, maybe that has someting to do with the declaration error?

header('Content-type: text/xml');
echo "<?xml version=\"1.0\"?>\n";
echo "<response>\n";
echo "\t<status>$status_code</status>\n";
echo "\t<fout>Geen</fout>\n";
echo "</response>";

Teşekkürler, Richard

4 Cevap

Bu xml bildirimiyle başlamalıdır dosyanın üstündeki boş bir satır vardır gibi geliyor. Örneğin:

<?xml version="1.0" encoding="utf-8"?>

Eğer ilanından önce boş satırları var mı?

Sizin DİNLENME hizmeti, böyle bir şey, XML içeriğini iade edilmelidir:

<?xml version="1.0" encoding="utf-8"?>
<results>
  <result>
    <value awesome="true">LOLCATS</value>
  </result>
</results>

Daha sonra başka bir sitede ki REST hizmet tüketmek için bu satırlar boyunca bir şey yapmak istiyorum:

$xml = simplexml_load_string(file_get_contents('http://example.com/rest.xml'));

foreach($xml->result as $result) {
  $value = $result->value;
  $awesome = $result->attributes()->awesome;
  // do something here with our values and attributes
}

SimpleXML için PHP docs daha karmaşık / gerçek dünya örnekleri içerir.

Belirli XML için:

$xml = simplexml_load_string(file_get_contents('http://example.com/rest.xml'));

$status = $xml->status;
$fout = $xml->fout;

Hata mesajı açıkça xml verilerin başında boş bir satır veya karakter var olduğunu belirtiyor. Bu dosya-kodlama-sorun olabilir.