2014-06-06 118 views
0

我有XML與格式媲美下面這樣在PHP中的兄弟姐妹:選擇文本節點的使用SimpleXML

<users> 
    <user> 
    <name>Mac</name> 
    <category>4</category> 
    </user> 
    <user> 
    <name>Simon</name> 
    <category>3</category> 
    </user> 
    <user> 
    <name>Jim</name> 
    <category>4</category> 
    </user> 
</users> 

我想這樣做的interate是通過用戶在一個特定的類別和返回其名。我一直在使用simplexml做一些工作,但我一直無法弄清楚如何根據它的兄弟中的文本選擇元素節點。

foreach ($users->user as $user) { 
echo (string)$user->name; 
} 

預先感謝您

回答

0

使用XPath:

$users = simplexml_load_string($xml); 
foreach($users->xpath('//user[category = 4]') as $user) { 
    echo (string) $user->name, "\n"; 
} 

輸出:

Mac 
Jim 

順便說一句這是它會如何看待與DOM:

$xpath = new DOMXpath(DOMDocument::loadXml($xml)); 
foreach ($xpath->evaluate('//user[category = 4]') as $user) { 
    echo $xpath->evaluate('string(name)', $user), "\n"; 
}