【100分求助】请问PHP中如何判断两个XML节点是否相同
程序员文章站
2022-03-05 12:58:35
...
请问各路大神,在XML节点 层次结构不确定的情况下,如何判断两个XML节点是否相同?
这里我们约定当节点存在子节点时,子节点的排列顺序不影响XML节点的判断。
例如有以下两个XML节点:
节点1:
节点2:
在我们现在的逻辑中,认为节点1和节点2是 相同的两个节点。
请问在PHP中有没有什么办法可以判断这两个节点是相同的呢?
谢谢!
我还想用phpQuery实现的 看你写出来了我就不贴出来了
这里我们约定当节点存在子节点时,子节点的排列顺序不影响XML节点的判断。
例如有以下两个XML节点:
节点1:
1 2
节点2:
2 1
在我们现在的逻辑中,认为节点1和节点2是 相同的两个节点。
请问在PHP中有没有什么办法可以判断这两个节点是相同的呢?
谢谢!
回复讨论(解决方案)
$s =bool(true)1 2 2 1 XML;$xml = simplexml_load_string($s);$t = $xml->xpath('///a');$t = array_map('objectToarray', $t);//print_r($t);var_dump($t[0] == $t[1]);function objectToArray($d) { if (is_object($d)) { $d = get_object_vars($d); } if (is_array($d)) { return array_map(__FUNCTION__, $d); } else { return $d; } }
T T 多谢版主!一个很好的思路~
$s =bool(true)1 2 2 1 XML;$xml = simplexml_load_string($s);$t = $xml->xpath('///a');$t = array_map('objectToarray', $t);//print_r($t);var_dump($t[0] == $t[1]);function objectToArray($d) { if (is_object($d)) { $d = get_object_vars($d); } if (is_array($d)) { return array_map(__FUNCTION__, $d); } else { return $d; } }
我还想用phpQuery实现的 看你写出来了我就不贴出来了