2015-11-19 66 views
0

XML被一個名爲loadXML的熱,以檢查是否存在XML中特定節點的值或者不

<?xml version="1.0」?> 
<GetUserProfileResponse> 
    <User> 
    <UserID>sonishopcom</UserID> 
    </User> 
    <User> 
    <UserID>guru</UserID> 
    </User> 
</GetUserProfileResponse> 

我堅持一個簡單的查詢加載。

我想檢查在php中是否存在某個特定的元素值if()Statement 就像我需要檢查的UserID sonishopcom一樣。

$userID = 'test'; 
$datta = simplexml_load_file('loadxml'); 
+0

我在做什麼是使用數組來保存節點值,然後使用'in_array()'進行搜索。這似乎很有效的殺戮選擇,但我沒有找到方法來搜索XML元素值。 –

回答

0

首先,你貼的不是一個有效的XML文檔,因爲XML的根源是</GetUserProfileResponse>,而不是<GetUserProfileResponse>

一旦有效,但:

$data = simplexml_load_file('loadxml'); 
if(isset($data[0]->User->UserID)) { echo "UserID is set"; } 

以上如果第一個用戶的ID被設置,將返回。

+0

是的,這是一個錯誤,並糾正了相同的。我基本上獲取用戶ID保存爲XML格式只是爲了避免保存重複條目我只想檢查XML字符串,如果ID存在或不,如果不是,然後保存它現在提示消息,以便測試。 –

+0

如果你的xml節點是這樣寫的,那麼解析起來會更容易:''因爲那樣你就可以搜索包含該ID的特定節點了很快。按照現狀,您需要在用戶節點上執行foreach循環,如果字符串與所述循環中的當前項匹配,則返回true。 – skrilled

+0

我同意剛剛提到的內容,但是我得到的數據是直接從API獲取的,因此希望以導入的原始格式保存爲XML格式。所以,如果我需要解析或提取數據,我可以很容易地使用自定義腳本。我認爲應該有一種方法來檢查元素的值並返回布爾值。 –

0

我在做什麼是使用數組來保存節點值,然後使用in_array()進行搜索。這似乎很有效的殺戮選擇,但我沒有找到方法來搜索XML元素值。

相關問題