2013-04-26 6 views
2

У нас есть 3 разных программы/среды, в которых создается тот же самый тип XML, который изменяется в значениях и порядке элемента.XSLT: глубокий уровень без порядка/последовательности

Я должен выбрать конкретный элемент из этих XML и проверить, соответствуют ли каждый дочерний/элемент/атрибуты. Я использовал функцию с глубокой равностью, и это дает мне хорошую выходную информацию, но это не на 100% гарантировано. Потому что иногда порядок узлов может варьироваться, что разрешено, а также атрибуты (в порядке).

Кто-нибудь знает, как сравнить два узла по способу глубокого равенства, не беспокоясь о последовательности/порядке?

Пожалуйста, дайте мне знать, если для получения ответа требуется дополнительная информация.

ответ

2

По умолчанию последовательность элементов имеет смысл в XML, поэтому функции, такие как глубокие, чувствительны к последовательности. Нет встроенного эквивалента, нечувствительного к последовательности; это особая идиома, принятая в некоторых словарях, но этого достаточно для особого случая, который функционирует для ее поддержки, не принадлежит к общей библиотеке.

Чтобы решить вашу непосредственную проблему: для элементов, где порядок детей не имеет значения, нормализуйте порядок (например, как-то детерминированным способом), а затем используйте глубокий уровень.

+0

Правда. Сортировка по атрибутам узла и узла может быть решением и движением к нему. Оцените свои усилия и ответьте. –