Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
Вот появилась задачка: Найти разницу между двумя версиями xml файла. Накопал у мелкомягких классы для оно процедуры. Первый класс содержит один метод Compare, который определяет есть ли разница(result bool) и выдает файл - дескриптор, с описанием всех изменений. Второй класс также имеет всего один метод Patch, который используя файл-дискриптор от мервого, патчит начальный файл таким образом приводя его к состоянию конечного(почти). Вопрос: им что, нечем больше занятся? Файл-дескриптор сам по себе ничего мне не дает, он содержит описание изменений, и польза от него только второму классу. Блин. У меня задача, выловить изменения и родить 3 файла : Deleted, Updated, Changed. С самого начала шеф клятвенно заверял что в этих классах усе будет. Вот такая пертушка. Выходов получается два: 1.Писать свой парсер для производного файла и по нему рожать 3 нужных. Благо спецификацию к нему нарыл. 2.Послать в сад мелкомягкие заморочки и писать парсер с самого начала и все делать самому. Но это потянет прилично времени, а его нет. Что посоветуете? Кто нить заморачивался подобным? Есть ли какие наработки? Может где нить видели что нить подобное? Думал что уже есть но в сети нифига не нашел... Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 16:59 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
Если да, может просто пройтись в цикле по элементам и определить какие изменены, какие добавлены или удалены ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 11:50 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
Залей оба xml в recordset и сопряги их. Эти кажется таким образом сопрягаются. .. не помню уже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 12:00 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
2 Marina_M Свой парсер писать, не такая уж простая задача. Одним циклом тут не обойдешься, вариантов изменений слишком много. Например изменен порядок детей у одного из элементов. Как их в таком случае сравнивать? Или порядок атрибутов... Плюс к этому, сравнивать надо не только первый со вторым, но и второй с первым, чтобы выяснить добавленные элементы. Мороки прилично, а времени нет. 2 Павел Воронцов Залей оба xml в recordset и сопряги их. Эти кажется таким образом сопрягаются. .. не помню уже. Инетересно. А подробнее можно? Что то я не уловил процесс. Имеется ввиду, залить их вовременные таблицы и там джойнами искать различия? А по результатам создавать новые файлы? Или просто бегать по циклу рекордсета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 12:52 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
DataSet -> Merge -> GetChanges Подробности в MSDN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 13:39 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
Спасибо. Почитал, очень интересно. Сейчас попробую. Если получится, это спсет меня от большого гимора. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 16:26 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
Странно. Все вроде правильно и должно работать но ругается на Merge: Код: plaintext 1. 2. Не встречалось подобное? Пробовал искать причины ошибки - ничего явного. И в сети тоже не нашел. Документы практически идентичны, во втором добавлено несколько нодов и пару атрибутов. Структура та же. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 20:20 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 21:54 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
Блин. Баг. Та же самая ошибка вылетает для Merge и ReadXml(им тоже можно, если использовать InfereSchema) а все потому что в документе существуют ноды с одинаковой структурой. Бред какой то. Есть у коллег какие нибудь мысли по этому поводу? Спасибо. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2003, 13:29 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
Посмотри в хелпе ReadXml, может тебе не InferSchema нужна, а DiffGram-режим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2003, 14:51 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
Magnus23 писал:в документе существуют ноды с одинаковой структурой Ну тогда опа - как Вы собираетесь различать такие ноды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2003, 15:03 |
|
||
|
XmlDiff -ТУФТА, Майкрософт снова гонит...
|
|||
|---|---|---|---|
|
#18+
2 hDrummer Я ж только что писал, на нем вылетает та же ошибка. Diffgram? Вероятно нет. В этом случае читается файл с изменениями и все лепится к основному. У меня же 2 версии одного документа, т.е. небольшие отличия а в остльном они идентичны. Ну тогда опа - как Вы собираетесь различать такие ноды? В данном документе не может быть такого варианта, все ноды уникальны(Employees) и если попался дубликат, значит, он есть тоже самое и его не воспринимать. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2003, 15:49 |
|
||
|
|

start [/forum/topic.php?fid=20&gotonew=1&tid=1439936]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
5ms |
get first new msg: |
3ms |
get forum data: |
1ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 336ms |

| 0 / 0 |
