2017-01-04 167 views
1

如何使用PHP SimpleXML解析器迴應John和Mike?當兩個有不同的項目PHP SimpleXML解析器兒童

<DATA> 
    <KEY> 
    <item0> 
     <RTS>John</RTS> 
    </item0> 
    <item1> 
     <RTS>Mike</RTS> 
    </item1> 
    </KEY> 
</DATA> 

這個作品,但如果您嘗試使用$ XML =使用simplexml_load_file( 「的example.xml」)或死亡( 「錯誤:對象創建失敗」);

它不會與simple_load_file

<?php 
$xml = 
"<?xml version='1.0' encoding='UTF-8'?> 
<DATA> 
<KEY> 
<item0> 
<RTS>John</RTS> 
</item0> 
<item1> 
<RTS>Mike</RTS> 
</item1> 
</KEY> 
</DATA>"; 

function xml2array($xml) 
{ 
    $arr = array(); 

    foreach ($xml as $element) 
    { 
     $tag = $element->getName(); 
     $e = get_object_vars($element); 
     if (!empty($e)) 
     { 
      $arr[$tag] = $element instanceof SimpleXMLElement ? xml2array($element) : $e; 
     } 
     else 
     { 
      $arr[$tag] = trim($element); 
     } 
    } 

    return $arr; 
} 

$xml = new SimpleXMLElement($xml); 
$data = xml2array($xml); 
foreach ($data as $key => $value) { 
    foreach ($value as $key1 => $val1) { 
     echo $val1['RTS']; echo "<br/>"; 
    } 
} 
?> 
+0

工作,你可以提供你試過到目前爲止的代碼? – fpietka

+0

剛剛添加的代碼 –

回答

0
<?php 

    /// load your external xml file here//// 
    if (file_exists('file.xml')) { 
     $xml = simplexml_load_file('file.xml'); 

     // $xml = new SimpleXMLElement($xml); 
     $data = xml2array($xml); 
     foreach ($data as $key => $value) { 
      foreach ($value as $key1 => $val1) { 
       echo $val1['RTS']; echo "<br/>"; 
      } 
     } 
    } else { 
     exit('Failed to open test.xml.'); 
    } 
    function xml2array($xml) 
    { 
     $arr = array(); 

     foreach ($xml as $element) 
     { 
      $tag = $element->getName(); 
      $e = get_object_vars($element); 
      if (!empty($e)) 
      { 
       $arr[$tag] = $element instanceof SimpleXMLElement ? xml2array($element) : $e; 
      } 
      else 
      { 
       $arr[$tag] = trim($element); 
      } 
     } 

     return $arr; 
    } 

?> 
+0

,它工作的很好,但是當我做一個加載文件它不起作用。 –

+0

它工作的很好,但是當我添加它不起作用。 $ xml = simplexml_load_file(「file.xml」)或死(「錯誤:對象創建失敗」); –

+0

檢查你的apache配置。 '的phpinfo()'。 libxml是否安裝? –