2012-07-23 68 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