У меня есть список идентификаторов, которые я хочу использовать, чтобы «фильтровать» предоставленный XML-файл. Каждый узел в списке должен быть сохранен, и каждый удаленный узел не удаляется.XSLT Удаление узлов не в списке при сохранении любых дочерних узлов, которые находятся в списке
Сложность для меня - когда я удаляю узел (не в IDList), я также удаляю дочерний узел, который может быть в IDList.
Прежде всего, мне нужно сохранить вложенность узлов (см. Мой пример ниже).
Это мой список идентификаторов:
список_идентификаторов = 2,3,5,6
Это мой вклад XML является:
<Associations> <Association ASSOCIATION_ID="1"> Elmwood Association <Homes/> </Association> <Association ASSOCIATION_ID="2"> Oakwood Association <Homes/> <Association ASSOCIATION_ID="4"> Oakwood Sub Association A <Homes/> <Association ASSOCIATION_ID="6"> Oakwood Sub Sub Association <Homes/> </Association> </Association> <Association ASSOCIATION_ID="5"> Oakwood Sub Association B <Homes/> </Association> </Association> <Association ASSOCIATION_ID="3"> Cedarwood Association <Homes/> </Association> </Associations>
Это мой желаемый выход:
<Associations> <Association ASSOCIATION_ID="2"> Oakwood Association <Homes/> <Association ASSOCIATION_ID="6"> Oakwood Sub Sub Association <Homes/> </Association> <Association ASSOCIATION_ID="5"> Oakwood Sub Association B <Homes/> </Association> </Association> <Association ASSOCIATION_ID="3"> Cedarwood Association <Homes/> </Association> </Associations>
Любая помощь будет высоко оценена!
Dimitre, я был неправильно указать XSLT-2,0, так что XSLT-1,0 является единственным доступным вариантом (извините!). Когда я пытаюсь выполнить код, я возвращаю ассоциацию с node_Id = 2. Это потому, что я в xslt-1.0? – Schletz
@ user2340911. Если ваш процессор XSLT 1.0 действительно совместим и не работает неправильно, вы должны получить сообщение об ошибке времени компиляции или, по крайней мере, предупреждение. Что касается преобразования этого в XSLT 1.0, это возможно, но будет выглядеть довольно неуклюжим. Сейчас я собираюсь работать - сможет взглянуть на решение XSLT 1.0 примерно через 10 часов. –
@Schletz, я добавил к этому ответу решение XSLT 1.0, как и требовалось. –