@Peter Meyer
Вы получаете идею. Я думаю, идя максимально слабо связанный, хорошая вещь, но возможно я немного увлекался!:)
Errr... да... Я думаю IStuffSmallEnoughToBeLostInAHaystack
, отчасти красный флаг:-)
Преобразование их в строки не очень удачно. Например, если у элемента два атрибута, имеет ли значение порядок? В большинстве случаев нет. Имеет ли порядок дочерние элементы данного узла? Зависит от того, что вы делаете. Но если ответ на один из этих вопросов - «нет», тогда простое сравнение строк - это в лучшем случае путаница.
В Nokogiri нет ничего, что могло бы сделать это за вас; вам придется построить его самостоятельно. Аарон Паттерсон обсуждает некоторые вопросы здесь :
Что касается XML-документа обеспокоены, никакие два узла никогда не равный. Каждый узел в документе другой. На каждом узле много атрибуты для сравнения:
- Имя такое же?
- А как насчет атрибутов?
- Как насчет пространства имен?
- А как насчет количества детей?
- Все ли дочерние элементы одинаковы?
- Один и тот же родительский узел?
- Как насчет его положения относительно узлов-братьев?
Подумайте о добавлении двух узлов к тот же документ. Они не могут никогда иметь такое же положение относительно брата или сестры узлов, поэтому два узла в документ не может быть "равным".
Вы можете , однако сравните два разные документы. Но тебе нужно ответь на эти 7 вопросов сам как вы идете по двум деревьям. Твой требования к схожести могут отличаться от других.
Это лучший вариант: пройтись по деревьям и провести эти сравнения.