2011-01-09 20 views
0

に役立つ必要があります:私はこのコードを解析してみてくださいXML解析、私はこれがXMLであるXML を解析するための在宅ワーク持つPHP

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<array> 
    <dict> 
    <key>code</key> 
    <string>27</string> 
    <key>programname</key> 
    <string>Anında İstek Hattı</string> 
    <key>programmername</key> 
    <string>Selma Akbaş</string> 
    <key>avatar</key> 
    <string>selma-akbas-11.jpg</string> 
    </dict> 
    <dict> 
    <key>code</key> 
    <string>16</string> 
    <key>programname</key> 
    <string>Beyaz Gece</string> 
    <key>programmername</key> 
    <string>Okan Karakoca</string> 
    <key>avatar</key> 
    <string>okan-karakoca-7.jpg</string> 
    </dict> 
</array> 
</plist> 

を:

<?php 
Header('charset=utf-8'); 
    $test = simplexml_load_file('programlar.xml'); 
    foreach ($test->array as $ar) { 
     foreach ($ar->dict as $dict) { 
     echo($dict->key); 
     echo "<br/>"; 
     echo($dict->string); 
     echo "<br/>"; 
     } 
    } 
?> 

解析が行われますが、それはいくつかのエラーを取得します。 各ディクショナリの最初のキーストリングのみを表示します

このコードを修正してもらえますか? ありがとう

+0

xml形式は不明ですが、xml_parse_into_structをチェックしてください。これは多かれ少なかれ1ライナーです(PHPの例を参照) – Teson

+0

どのようなエラーが発生しますか?私はあなたが助けなしに誰もが推測したり、試したりすることを期待していません。 – alexn

+0

私はあなたが持っている問題は、 '文字列'はPHPのキーワードだと思います。 –

答えて

0
<?php 
Header('charset=utf-8'); 
$test = simplexml_load_file('programlar.xml'); 
foreach ($test->array as $ar) { 
    foreach ($ar->dict as $dict) { 
     for ($i = 0; $i < count($dict->key); $i++) { 
      echo $dict->key[$i].'<br />'; 
      echo $dict->string[$i].'<br />'; 

    } 
} 
?> 

私はこれがうまくいくと思います。あなたがハハでそれをオンにする前に、ここで何が起こっているのかを理解してください。私は基本的に配列のような2つのノードセットを扱う、配列スタイルのインデックスキーを使用して "キー"と "文字列"のペアを繰り返しています。

+0

ありがとうございました...私は配列のインデックスを追加しませんでした.. – justmyfreak