functx:remove-attributes

Remove atributos de um elemento XML, pelo nome

Descrição

A função functx:remove-attributes remove atributos de uma sequência de um ou mais elementos. O argumento $names é uma sequência de strings com os nomes dos atributos a remover. Prefixos podem (e precisam) ser usados em $names para atributos que têm prefixo no documento de entrada (com o mesmo prefixo). Também dá para usar os curingas "*", ":" e ":" no segundo argumento; veja a descrição de functx:name-test.

A função não remove atributos dos descendentes, só dos próprios elementos; para isso, veja functx:remove-attributes-deep.

Parâmetros

Descrição

elements:element()

o elemento ou os elementos de onde remover os atributos

names:string()

os nomes dos atributos a remover, ou * para todos

Exemplos

Os exemplos abaixo usam este documento de entrada:

<xsl:variable name="in-xml-1" as="item()*">
  <a attr1="123" attr2="456">abc</a>
</xsl:variable>
<xsl:variable name="in-xml-2" as="item()*">
  <a xmlns:a="http://a"
      a:attr1="123" attr1="456">abc</a>
</xsl:variable>

XPath

Resultado

functx:remove-attributes($in-xml-1, ('attr1','attr2'))

<a>abc</a>

functx:remove-attributes($in-xml-1, ('attr1','attr3'))

<a attr2="456">abc</a>

functx:remove-attributes($in-xml-1, '*')

<a>abc</a>

functx:remove-attributes($in-xml-2, ('a:attr1'))

<a attr1="456">abc</a>

Depende de

Veja também