2016-07-22 81 views
1

我想要一個PHP腳本來讀取.xml文件並顯示某個值。例如,我想知道類名「Jack-User2」的「name」值是什麼。我想讓它顯示「傑克」。或者,如果我想顯示「John-User1」類名的姓氏,它會顯示「Henry」。PHP讀取xml並顯示特定值

我一直在努力,已經搜索這件事,並沒有多少運氣發現,我需要的東西。我找到了你發送訂單號的號碼。但我希望能夠設置一個特定的價值,並找到它。

所以大概我想是這樣的:

<?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文件:

<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> 

我會很感激,如果有人可以用這個小項目提供幫助。由於

+0

什麼樣的價值是你在$ XML varibale得到。你必須得到$ xml的數組。 – software

回答

0

你有2個錯誤,在XML文件中

<firstname>John</name><name>John</name>

</customdata></customerdata>

代碼波紋管應爲你工作。

$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

太棒了,如果你願意,你可以將我的答案標記爲accpeted,這樣其他人就可以看到解決方案。 – PrototypeX7

+0

你可以創建數組'$ names'和'$ lastnames',並在循環的每次迭代中爲其分配當前名稱/姓氏。 '$ names [] = $ user-> name;' – PrototypeX7