xpath / xslt: найти последний узел в зависимости от подузлов - PullRequest
0 голосов
/ 14 декабря 2011

Как я могу найти последний узел, который содержит определенную структуру?

    <defect-event>
        <event-assigned-to>
            <assigned-to-user>
                <last-name>Doe</last-name>
                <first-name>John</first-name>
                <middle-name></middle-name>
            </assigned-to-user>
        </event-assigned-to>
    </defect-event>

Может быть много узлов "дефект-событие" на одном уровне, ниже или выше узла с "назначенным«Пользовательский» подузел.Также может быть несколько узлов «дефект-событие» с подузлом «назначено пользователю».

Мне нужно найти последний узел «событие-дефект», который содержит «назначено пользователю»юзер "подузел.

Спасибо!

1 Ответ

0 голосов
/ 14 декабря 2011

Что-то в этих строках, вероятно, то, что вы хотите:

defect-event[event-assigned-to[assigned-to-user]][position()=last()]

По сути, вы говорите: «найдите мне все defect-event, которое содержит event-assigned-to, содержащее assigned-to-user, а затем просто дайте мне тот, чье position() равно last()».

Сказав это, вам может понадобиться настроить это в зависимости от контекста, в котором вы находитесь, когда пытаетесь найти узел, и от того, что вы делаете с узлом (например, поведение может отличаться, если вы находитесь в for-each цикл в отличие от apply-templates ситуации).

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