2016-07-22 9 views
1

.xmlファイルを読み込み、何かの値を示すPHPスクリプトが必要です。たとえば、クラス名 "Jack-User2"の "name"値が何であるかを調べたいとします。私はそれが "ジャック"を表示したい。または、 "John-User1"というクラス名の姓を表示する場合は、 "Henry"と表示されます。PHPがxmlを読み取り特定の値を表示

私はこれをすでに検索しようとしており、必要なものを見つけるのはあまり幸運なことではありませんでした。私はあなたが注文数を送ったものを見つけました。しかし、私は特定の価値を設定し、それを見つけることができるようにしたいと考えています。誰かがこの小さなプロジェクトを助けることができれば、私はそれを本当に感謝し

<customerdata> 
    <infotype> 
     <usertype id="1" classname="John-User1"> 
      <revision_id>1223</revision_id> 
      <firstname>John</name> 
      <lastname>Henry</lastname> 
     </usertype> 
     <usertype id="2" classname="Jack-User2"> 
      <revision_id>1223</revision_id> 
      <name>Jack</name> 
      <lastname>Thompson</lastname> 
     </usertype> 
     <usertype id="3" classname="Brad-User3"> 
      <revision_id>1223</revision_id> 
      <name>Brad</name> 
      <lastname>Henry</lastname> 
     </usertype> 
     <usertype id="4" classname="Jane-User4"> 
      <revision_id>1223</revision_id> 
      <name>Jane</name> 
      <lastname>Harrison</lastname> 
     </usertype> 
    </infotype> 
</customdata> 

<?php 
$classname = "John-User1"; 
$xml = simplexml_load_file('myfile.xml'); 

echo $name; //I want the name that is for John-User1 to appear here 
echo $lastname; //I want the last name here. 
?> 

私のXMLファイル:

だから大体、私が何をしたい、このようなものです。おかげ

+0

あなたが$のxml varibaleにどのような値を取得しています。 $ xmlで配列を取得する必要があります。 – software

答えて

0

あなたは、コード怒鳴るが、あなたのために働く必要があり</customerdata>

から<name>John</name>

</customdata>にあなたのXMLファイル内の2つのエラー

<firstname>John</name>を持っています。

$classname = "John-User1"; 

//Read the XML file 
$xmlContent = file_get_contents("txt.xml"); 

//Convert XML file to an object 
$xmlObjects = simplexml_load_string($xmlContent); 

//Create variables 
$name; 
$lastname; 

foreach ($xmlObjects->infotype->usertype as $user) { 
    //Check if names are equal 
    if ($user["classname"] == $classname) { 
     $name = $user->name; 
     $lastname = $user->lastname; 
    } 
} 

echo $name; 
echo "<br>"; 
echo $lastname; 

出力:

John 
Henry 
+0

将来参照するには、選択したクラス名ではなく、xmlファイル内のすべての名前と姓をすべて表示するにはどうすればよいでしょうか。ありがとうございました –

+0

欲しいのであれば、あなたは私の答えを飾りつけにすることができるので、他の人が解決策を見ることができます。 – PrototypeX7

+0

配列 '$ names'と' $ lastnames'を作ることができ、ループの各反復で現在の名前/姓を割り当てます。 '$ names [] = $ user-> name;' – PrototypeX7

関連する問題