2012-07-23 55 views
0

我想在全文中回顯所有「gx:coord」。Php簡單的XML幫助<gx:coord>

這是我現在有:

# XML 
$my_track = new SimpleXMLElement(file_get_contents('track.kml')); 


echo $my_track->Document->description; 

但我如何獲得與GX值:座標在foreach循環?

<Document> 
<description>Test</description> 
<gx:MultiTrack> 
    <altitudeMode>absolute</altitudeMode> 
    <gx:interpolate>1</gx:interpolate> 
    <gx:Track> 
     <when>2012-07-23T15:00:44.000Z</when> 
     <gx:coord>2.508616 50.641113 46.0</gx:coord> 
     <when>2012-07-23T15:00:44.000Z</when> 
     <gx:coord>2.508616 50.641113 46.0</gx:coord> 
     <when>2012-07-23T15:00:59.000Z</when> 
     <gx:coord>2.508616 50.641113 49.0</gx:coord> 
    </gx:Track> 
    </gx:MultiTrack> 
</Document> 

我想這是導致在foreach:

2.508616 50.641113 46.0 
2.508616 50.641113 46.0 
2.508616 50.641113 49.0 

真的需要這方面的幫助。

+0

是否有你'kml'文件中定義的任何命名空間......像'的xmlns會發生什麼幫助:GX =「...」'...你需要使用它和這個函數 - http://www.php.net/manual/en/simplexmlelement.registerxpathnamespace.php – 2012-07-23 07:50:13

+0

謝謝!有用! – user1386421 2012-07-23 08:02:22

回答

0
<?php 

$xml = '<Document> 
     <description>Test</description> 
     <gx:MultiTrack> 
      <altitudeMode>absolute</altitudeMode> 
      <gx:interpolate>1</gx:interpolate> 
      <gx:Track> 
       <when>2012-07-23T15:00:44.000Z</when> 
       <gx:coord>2.508616 50.641113 46.0</gx:coord> 
       <when>2012-07-23T15:00:44.000Z</when> 
       <gx:coord>2.508616 50.641113 46.0</gx:coord> 
       <when>2012-07-23T15:00:59.000Z</when> 
       <gx:coord>2.508616 50.641113 49.0</gx:coord> 
      </gx:Track> 
      </gx:MultiTrack> 
     </Document>'; 

$data = simplexml_load_string($xml); 
// Or $data = simplexml_load_file($filename); 

foreach ($data -> children() -> MultiTrack -> Track -> coord as $value) { 
    echo $value . '<br />'; 
} 

?> 
+0

我得到了很多的錯誤: 警告:simplexml_load_string()[function.simplexml負荷字符串]:在C:\ XAMPP \ htdocs中\ mytracks \ informatie_track.php第19行 警告:第19行的C:\ xampp \ htdocs \ mytracks \ informatie_track.php 警告:simplexml_load_string()[function.simplexml-load-string]:命名空間錯誤:simplexml_load_string()[function.simplexml-load-string]插值上的名稱空間前綴gx未在第19行的C:\ xampp \ htdocs \ mytracks \ informatie_track.php中定義 – user1386421 2012-07-23 07:40:47

+1

當然,您將會,因爲您的'gx'沒有被定義。 – Peon 2012-07-23 07:50:09