.. _functx_add-or-update-attributes: =============================== functx:add-or-update-attributes =============================== Inclui ou atualiza atributos em elementos XML Descrição ~~~~~~~~~ A função functx:add-or-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 incluídos. 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. Já a functx:add-attributes não atualiza o valor. 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 que vão receber o atributo * - attrNames:string() - o nome ou os nomes dos atributos a incluir * - attrValues:string() - o valor ou os valores dos atributos a incluir Exemplos ~~~~~~~~ Os exemplos abaixo usam este documento de entrada: .. code-block:: xml ... x x .. list-table:: :widths: 50 50 :header-rows: 1 * - **XPath** - **Resultado** * - functx:add-or-update-attributes($in-xml/a, xs:QName('att1'), 1) - x * - functx:add-or-update-attributes($in-xml/a, (xs:QName('att1'),xs:QName('att2')), (1,2)) - x * - functx:add-or-update-attributes($in-xml/b, (xs:QName('att1'),xs:QName('att2')), (1,2)) - x * - functx:add-or-update-attributes($in-xml/a, xs:QName('new:att1'), 1) - x * - functx:add-or-update-attributes($in-xml/a, QName('http://new','new:att1'), 1) - x Veja também ~~~~~~~~~~~ .. toctree:: :titlesonly: :glob: * :ref:`functx_add-attributes`. * :ref:`functx_update-attributes`. * :ref:`functx_copy-attributes`. * :ref:`functx_remove-attributes`.