使用PHP从XML文件中提取数据

I have an XML file with this structure:

<markers>
  <marker>
    <marker_id>...</marker_id>
    <map_id>...</map_id>
    <title>Test Location 1</title>
    <address>Blah Blah Blah</address>
    <desc/>
    <pic/>
    <icon>...</icon>
    <linkd/>
    <lat>...</lat>
    <lng>...</lng>
    <anim>...</anim>
    <category>...</category>
    <infoopen>...</infoopen>
  </marker>
</markers>

Basically it's pulling data from a Google Maps location XML file.

I need to echo the bit only

Here's what I have so far:

<?php
$url = 'myurl/1markers.xml';
$file = file_get_contents($url);
$xml = simplexml_load_string($file);

foreach($xml->markers as $x) {
   $location = $x->marker->title;
     echo $location;
   }
?>

It doesn't seem to be echoing...?

I've probably not done it right somewhere in the foreach, can anybody see what I'm missing?

Thanks

Mark

Use simplexml_load_file()

<?php
    $xml = simplexml_load_file("new.xml");
    foreach($xml as $x) {
       $location = $x->title;
          echo $location;
       }

    ?>

markers is a root tag. Refering to http://php.net/manual/en/simplexml.examples-basic.php, your code should look like:

foreach($xml->marker as $x) {
     echo $x->title;
   }

Could be useful to replace the file_get_contents: http://www.php.net/manual/en/function.simplexml-load-file.php

<?php

$XML = <<<'XML'
<markers>
  <marker>
    <marker_id>...</marker_id>
    <map_id>...</map_id>
    <title>Test Location 1</title>
    <address>Blah Blah Blah</address>
    <desc/>
    <pic/>
    <icon>...</icon>
    <linkd/>
    <lat>...</lat>
    <lng>...</lng>
    <anim>...</anim>
    <category>...</category>
    <infoopen>...</infoopen>
  </marker>
</markers>
XML;

$xml = simplexml_load_string($XML);

//This seems to fix things, issue was that you were trying to access the root tag which is implied.

foreach($xml->marker as $x) {
   $location = $x->title;
      var_dump($location);
   }

?>