.. _functx_distinct-nodes: ===================== functx:distinct-nodes ===================== Os nós XML distintos de uma sequência (pela identidade do nó) Descrição ~~~~~~~~~ A função functx:distinct-nodes devolve os nós distintos (pela identidade) de uma sequência. Ela faz isso sem reordenar os nós na ordem do documento: fica com a primeira ocorrência de cada nó. É diferente da função fn:distinct-values, porque devolve nós, e não valores atômicos, e não leva em conta o valor (conteúdo) dos nós, só a identidade. Observação: se você quer os nós reordenados na ordem do documento, ou se isso não importa, basta usar a expressão "$nodes/." (sem as aspas). Funciona porque o operador barra remove repetidos e reordena. O "." da expressão devolve o próprio nó. .. list-table:: :widths: 40 60 :header-rows: 1 * - **Parâmetros** - **Descrição** * - nodes:node() - a sequência de nós Exemplos ~~~~~~~~ Os exemplos abaixo usam este documento de entrada: .. code-block:: xml 1 2 3 3 .. list-table:: :widths: 25 25 50 :header-rows: 1 * - **XPath** - **Resultado** - **Explicação** * - functx:distinct-nodes(($in-xml/child, $in-xml/\*)) - 1 2 3 3 - Os dois elementos child que contêm 3 têm identidades diferentes, mesmo com o mesmo conteúdo. * - functx:distinct-nodes(($in-xml/child[3], $in-xml/\*)) - 3 1 2 3 - O 3 aparece primeiro porque é o primeiro da sequência de entrada. Depende de ~~~~~~~~~~ * :ref:`functx_is-node-in-sequence`. Veja também ~~~~~~~~~~~ .. toctree:: :titlesonly: :glob: * :ref:`functx_distinct-deep`. * :ref:`distinct-values`.