XSLT - Как я могу сохранить узел из одного документа в другом временном документе, а затем извлечь его? - PullRequest
2 голосов
/ 13 июля 2011

Это не совсем то, что я хочу сделать, но это простой пример нужной мне функциональности.Я хочу чередовать узлы обработки в одном документе и узлы обработки во временном документе, который был создан во время обработки исходного документа.Для этого я хочу «сохранить» узел из исходного документа во временном документе, чтобы я мог вернуться к нему.Я могу легко «сохранить» сам узел во временном документе, но, будучи частью временного документа, я больше не могу делать такие вещи, как проверка, является ли другой узел предком этого узла в исходном документе.

Я мог бы представить, что для этого используется generate-id.Я бы не стал сохранять узел как таковой, но использовать его идентификатор, а затем использовать идентификатор для возврата к узлу в исходном документе.Проблема с этим подходом состоит в том, что я не могу запросить узел, у которого есть такой-то и такой-то и тот-же.Я мог бы пройтись по дереву и найти его, но я ищу более простой и быстрый способ доступа.

Существует ли такой?

Заранее спасибо.

1 Ответ

1 голос
/ 13 июля 2011

Индексируйте каждый интересующий узел по его generate-id():

 <xsl:key name="kNodeById" match="node()"
  use="generate-id()"/>

и добирайтесь до узла по его идентификатору $vId:

key('kNodeById', $vId)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...