2012-03-14 9 views
0

私は誰かが私を助けてくれるかどうか疑問に思います。PHPでXML要素を抽出する

次のxmlファイルを用意しています。より正確には、2つのファイル属性の値を 'fileid'ごとに 'userid'と 'locationid'にする必要があります。最終的には、これらの値を使用して、ユーザーがページの読み込み時にどのフォルダとファイルを表示するかを決定します。

<?xml version="1.0" encoding="utf-8" ?> 
- <files> 
    <file name="Test 1/Test Pic 2.jpg" source="Test_Pic_2.jpg" size="728573" originalname="Test Pic 2.jpg" thumbnail="Test_Pic_2.jpg" userid="1" locationid="1" description="No description provided" folder="Test_1" /> 
    <file name="Test 1/stags-snow_1544533c.jpg" source="stags-snow_1544533c.jpg" size="21341" originalname="stags-snow_1544533c.jpg" thumbnail="stags-snow_1544533c.jpg" userid="1" locationid="1" description="Deer head." folder="Test_1" /> 
     </files> 

は、私は、この情報を取得する方法について多くを知らないではない認めなければならないが、いくつかの検索の後、私は私が適応きたし、下記の追加したオンラインチュートリアルを見つけました。

<?php 

    if(! $xml = simplexml_load_file('UploadedFiles/files.xml')) 
    { 
     echo 'unable to load XML file'; 
    } 
    else 
    { 
     foreach($xml as $files) 
     { 
      echo 'userid: '.$file_name->userid.'<br />'; 
      echo 'locationid: '.$file_name->locationid.'<br />'; 
     } 
    } 

?> 

私がいる問題は、私はこれを実行すると、私は次のような結果を得ることです:

ユーザーID: locationid: ユーザーID: locationid: ユーザーID: locationid:

行数はレコード数に対応しますが、私が得ようとしていたのはフィールドの値だけです。

私はちょうど誰かがこれを見て、私がどこに間違っているのかを教えてもらえるかどうか疑問に思いました。

感謝

答えて

0

を使用する必要があります。 (http://php.net/manual/en/simplexmlelement.attributes.phpで発見例)バック投稿してくださいされていない場合、このことができますし、

<?php 
$string = <<<XML 
<a> 
<foo name="one" game="lonely">1</foo> 
</a> 
XML; 

$xml = simplexml_load_string($string); 
foreach($xml->foo[0]->attributes() as $a => $b) { 
    echo $a,'="',$b,"\"\n"; 
} 
?> 

希望。 SimpleXMLは約覚えて

+0

こんにちは、これで私を助けてくれてありがとう。私はこの事例をある程度理解していました。しかし、私がより深く達成する必要があるものを見て、新しい投稿を追加する必要があるかもしれません。なぜなら、私がしなければならないことは、もともと考えていたものよりかなり複雑です。種類については – IRHM

+0

問題ありません。あなたに問題がある場合は、私に電子メールを送ってください。 –

+0

それはあなたにとても親切です。どうもありがとう。 – IRHM

0

$file_nameは、それはあなたが持っている全体のPHPスクリプトだと仮定すると、スクリプトで定義されていません。

あなたは、おそらく私はあなたがこのような何かを必要だと思う$files->userid$files->locationid

+0

こんにちは、これは多くのありがとうございます。残念ながら私はこれを試したことがあり、同じ結果が得られました。おやすみなさい – IRHM

1

4つの基本的なもの:

  1. プロパティを持つ要素へのアクセス:添字と$elem->childname
  2. 属性アクセス:キャスト$elem['attribname']
  3. テキストコンテンツ:(string) $elem
  4. のxpath $elem->xpath('')

useridが属性であるため、添字['userid']を使用する必要がある場合は、要素アクセス(->userid)を使用しています。

関連する問題