.. _functx_update-attributes:
========================
functx:update-attributes
========================
Atualiza o valor de atributos de um elemento XML
Descrição
~~~~~~~~~
A função functx:update-attributes recebe um ou mais elementos XML, uma sequência
de nomes de atributo e uma sequência de valores, e devolve um elemento novo com
esses atributos atualizados. Nomes e valores andam por posição: o primeiro nome
corresponde ao primeiro valor, o segundo nome ao segundo valor, e assim por
diante. Todos os atributos e o conteúdo originais do elemento são mantidos,
exceto que, se o elemento já tiver um atributo com um dos nomes de $attrNames, o
valor dele é atualizado com o valor correspondente de $attrValues. Ao contrário
da functx:add-or-update-attributes, se o atributo não existia no elemento, ele
não é incluído.
Cada nome precisa ser um valor xs:QName. QNames podem ser construídos com o
construtor de tipo xs:QName ou com a função fn:QName, como nos exemplos.
.. list-table::
:widths: 40 60
:header-rows: 1
* - **Parâmetros**
- **Descrição**
* - elements:element()
- o elemento ou os elementos cujos atributos serão atualizados
* - attrNames:string()
- o nome ou os nomes dos atributos a atualizar
* - attrValues:string()
- o valor ou os valores novos dos atributos
Exemplos
~~~~~~~~
Os exemplos abaixo usam este documento de entrada:
.. code-block:: xml
x
x
x
.. list-table::
:widths: 50 50
:header-rows: 1
* - **XPath**
- **Resultado**
* - functx:update-attributes($in-xml/a, xs:QName('att1'), 123)
- x
* - functx:update-attributes($in-xml/a, (xs:QName('att1'),xs:QName('att2')), (1,2))
- x
* - functx:update-attributes($in-xml/b, xs:QName('att1'), 123)
- x
* - functx:update-attributes($in-xml/c, QName('http://new','att1'), 123)
- x
Veja também
~~~~~~~~~~~
.. toctree::
:titlesonly:
:glob:
* :ref:`functx_add-attributes`.
* :ref:`functx_copy-attributes`.
* :ref:`functx_remove-attributes`.