请问各路大神,在XML节点 层次结构不确定的情况下,如何判断两个XML节点是否相同?
这里我们约定当节点存在子节点时,子节点的排列顺序不影响XML节点的判断。
例如有以下两个XML节点:
节点1:
<a> <b><d>1</d></b> <c>2</c></a>
<a> <c>2</c> <b><d>1</d></b></a>
$s =<<< XML<a> <b><d>1</d></b> <c>2</c></a><a> <c>2</c> <b><d>1</d></b></a> 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 =<<< XML<a> <b><d>1</d></b> <c>2</c></a><a> <c>2</c> <b><d>1</d></b></a> 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; } }