我正在努力获得基于子节点的节点。所以我不想通过id 4061106得到完整的人。我使用SimpleXMLElement,现在我做了一个foreach循环来显示所有人,但我不知道如何通过特定的id。我甚至不知道从哪里开始。
<list>
<person>
<id>4061106</id>
<name>Stefan</name>
<country></country>
<is_admin>0</is_admin>
<lastCallbackTime></lastCallbackTime>
</person>
<person>
<id>4082930</id>
<name>Mike</name>
<is_admin>0</is_admin>
<lastCallbackTime></lastCallbackTime>
</person>
</list>
您需要使用Xpath找到具有正确值的节点,然后跳回到父节点。
$xml = '
<list>
<person>
<id>4061106</id>
<name>Stefan</name>
<country></country>
<is_admin>0</is_admin>
<lastCallbackTime></lastCallbackTime>
</person>
</list>
';
$sxml = simplexml_load_string($xml);
$person = $sxml->xpath('/list/person/id[.="4061106"]/parent::person')[0];
echo (string) $person->name; // Stefan