2017-01-04 22 views
1

PHP SimpleXML Parserを使用してJohnとMikeをどのようにエコーしますか?両方がPHP SimpleXML Parser Children

<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")またはdie( "エラー:オブジェクト作成失敗"); –

+0

Apacheの設定を確認してください。 'phpinfo()' libxmlがインストールされているかどうか –