Отслеживание исходных элементов с помощью нескольких XSL-преобразований - PullRequest
1 голос
/ 15 апреля 2011

Я ищу идеи о том, как проследить исходные элементы в нескольких преобразованиях XML в XML. У меня есть очень большие XML-файлы политики размером 3-50 МБ, которые проходят по крайней мере два отдельных XSLT в разное время. Сами XSLT содержат тысячи и тысячи строк кода. Вывод может сильно отличаться в зависимости от исходного XML.

Пример: скажем, у меня есть исходный элемент COMMISSION, который на 10 уровней глубже исходного XML-кода:

<COMMISSION>$0.00</COMMISSION>

и после двух отдельных преобразований теперь он называется B_COMMSN два уровня в

<B_COMMSN>$0.00</B_COMMSN>

Я не оригинальный кодер, и мне нужен способ, чтобы быстро найти исходный элемент B_COMMSN ... кроме отслеживания через XSLT и все шаблоны. Это просто инструмент для меня ... так что эффективность кода не является наивысшим приоритетом ... XSLT 2.0 в порядке.

Простого изменения всех значений на уникальные числа недостаточно, поскольку 1) XSLT содержат сравнения типов данных и 2) Выполнен поиск. Например, у меня может быть номер ячейки 3 в одном элементе, и XSLT использует это значение для перехода к другому набору узлов для поиска адреса для этого местоположения.

Идеи ??? Решения ??? Это все желаемое за действительное?

Ответы [ 2 ]

1 голос
/ 16 апреля 2011

Несколько IDE (например, IIRC Oxygen и Stylus Studio) осуществляют "возврат" - сообщая вам, где в таблице стилей был создан конкретный узел дерева результатов и / или каков был контекст в исходном документе в то время.Вы не сможете полностью автоматизировать анализ с помощью нескольких таблиц стилей, но это полезный инструмент для расследования.

0 голосов
/ 17 апреля 2011

Если это может помочь хоть немного:

Некоторые отладчики XSLT 1.0 имеют «точки останова данных» - установка точки останова на определенном узле в документе XML приводит к сбою отладчика каждый раз, когда этому узлу соответствует <xsl:template> или <xsl:for-each>.

Конечно, наиболее общий случай этой проблемы является плохо определенным и неразрешимым, поскольку один узел может влиять на множество выходных узлов / элементов, а конкретный выходной узел / элемент может зависеть от количества узлов из разных документов XML. .

...