массивы — различия между двумя строками XML с помощью переполнения стека

Я пытаюсь сравнить и проверить различия между двумя строками XML, но мой код не обнаруживает никаких изменений в строках XML!
Например, моя первая строка содержит:

            <Result>
<pid>10</pid>
<DocID>29</DocID>
<Response>True</Response>
<DocID>60<DocID>
<Blvd_Name>dfdfdfdfd</Blvd_Name>
<Alley_Name>dfd</Alley_Name>
<Plate_Number>654654</Plate_Number>
<Post_Code>654654654</Post_Code>
<Phone_1>654654</Phone_1>
<Phone_2>654654564</Phone_2>
<Fax>2323232</Fax>
<Website>ewewew</Website>
<Mobile_No>23232323232</Mobile_No>
<Information>
<Info>
<National_Code>106397854</National_Code>
<Start_Activity_Date>2015-12-22 00:00:00</Start_Activity_Date>
<End_Activity_Date>2016-01-03 00:00:00</End_Activity_Date>
</Info>
</Information>
<Service_Times>
<Service_Time>15:30 - 17:45</Service_Time>
</Service_Times>
</Result>

вторая строка:

             <Result>
<pid>10</pid>
<DocID>29</DocID>
<Response>True</Response>
<DocID>60<DocID>
<Blvd_Name>dfdfdfdfd</Blvd_Name>
<Alley_Name>dfd</Alley_Name>
<Plate_Number>654654</Plate_Number>
<Post_Code>654654654</Post_Code>
<Phone_1>11111</Phone_1>
<Phone_2>6546111154564</Phone_2>
<Fax>11111</Fax>
<Website>11111</Website>
<Mobile_No>11111</Mobile_No>
<Information>
<Info>
<National_Code>106397854</National_Code>
<Start_Activity_Date>2015-12-22 8:01:50</Start_Activity_Date>
<End_Activity_Date>2016-01-03 11:20:10</End_Activity_Date>
</Info>
</Information>
<Service_Times>
<Service_Time>15:30 - 17:45</Service_Time>
</Service_Times>
</Result>

как вы можете видеть, есть некоторые различия в значениях объектов!
Я попробовал simplexmlload, а затем array_diff и jason кодировал и декодировал и сравнивал jason, но у меня не было возможности обнаружить различия.
Любое предложение, как это сделать?

мой код diff массива:

 $result = array_diff($Data1, $Data2);

if(empty($result)){
// the XML documents are the same
$res = "No changes";
} else {
// they are different
$res = "There are Some changes";
}

1

Решение

Вы можете оставить данные в виде необработанного текста и увидеть разницу, используя следующие

<?php
$difference = xdiff_string_diff($Data1, $Data2);
0

Другие решения

Хорошо, я решил проблему, используя простой метод сравнения, и это сработало.

Сначала я открыл два XML-файла, а затем скопировал их, используя метод, описанный ниже, если я изменяю значение / структуру во втором XML-файле, это дает мне «есть некоторые изменения».

   $file = './Result.xml';
if (file_exists($file)) {
$Data = file_get_contents($file);
} else {
exit('Failed to open ' . $file);
}

$file2 = './Result2.xml';
if (file_exists($file2)) {
$Data2 = file_get_contents($file2);
} else {
exit('Failed to open ' . $file2);
}if ($Data === $Data2) {
// the XML documents are the same
$res = "No changes";
} else {
// they are different: print the reason why
$res = "There are Some changes";

}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector