簡體   English   中英

通過PHP從XML文件中選擇不同的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM