Я пытаюсь отсортировать документ XML с помощью XSLT и хочу оставить комментарии. Пока все хорошо, поскольку уже есть некоторые ответы на этот вопрос (см. Связанный ..). Но! ни один из этих (превосходных) ответов не относится к XML, который выглядит следующим образом:
<xml>
<beatles>
<!-- comment(1): john is actually my favourite -->
<!-- comment(2): John died tragically in 1980 -->
<beatle name="John"/>
<beatle name="Ringo"/>
<beatle name="George"/>
<!-- comment(1): Paul still does live concerts to this day -->
<!-- comment(2): contrary to common folklore, Paul is NOT dead! -->
<beatle name="Paul"/>
</beatles>
</xml>
Что происходит сейчас? Я хочу отсортировать «Битлз» (да благословит их Бог) по имени, а также оставить ВСЕ комментарии каждого «Битлз» на месте, чтобы получить такой результат:
<xml>
<beatles>
<beatle name="George"/>
<!-- comment(1): john is actually my favourite -->
<!-- comment(2): John died tragically in 1980 -->
<beatle name="John"/>
<!-- comment(1): Paul still does live concerts to this day -->
<!-- comment(2): contrary to common folklore, Paul is NOT dead! -->
<beatle name="Paul"/>
<beatle name="Ringo"/>
</beatles>
</xml>
Старый добрый previous-sibling :: comment () [1] здесь работать не будет. В обычном коде я просто делаю обратный цикл над всеми предыдущими комментариями и останавливаюсь, когда я нажимаю на узел без комментариев; но, как мы все знаем, XSLT для каждого не может быть экранирован.
Есть мысли?
ТИА!
DF.