[英]Select distinct values from an XML file via PHP
我有一個結構如下的XML文件:
<users>
<user>
<name>Fred</name>
</user>
<user>
<name>Fred</name>
</user>
<user>
<name>Bob</name>
</user>
</users>
我正在嘗試使用XPath返回不同名稱的列表:
$page = simplexml_load_file('data/data.xml');
$dims = $page->xpath('/users/user[not(@name=preceding-sibling::user/@name)]/@name');
這似乎不起作用。 任何想法如何做到這一點? 也許加載到數組並解析數組?
@name
是屬性語法,您想使用name
來考慮元素名稱:
$dims = $page->xpath('/users/user[not(name=preceding-sibling::user/name)]/name');
您使用數組的想法是正確的。 只需創建一個新數組來保存唯一性,然后遍歷用戶列表,如果當前用戶不在數組中,則添加它。
$page = simplexml_load_file('data/data.xml');
$uniqueUsers = array();
foreach($obj as $userObj)
{
if(!in_array((string)$page->name, $uniqueUsers))
{
$uniqueUsers[] = (string)$page->name;
}
}
是的,數組將更容易解析:
$json = json_encode($xml);
$array = json_decode($json,TRUE);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.