functx:remove-elements-deep

Remove elementos descendentes de um nó XML, pelo nome

Descrição

A função functx:remove-elements-deep remove, pelo nome, elementos descendentes de todos os nós de $nodes. O argumento $names é uma sequência de strings com os nomes dos elementos a remover. Prefixos podem (e precisam) ser usados em $names para elementos que têm prefixo no documento de entrada. Também dá para usar os curingas "*", ":" e ":" no segundo argumento; veja a descrição de functx:name-test.

Parâmetros

Descrição

nodes:node()

a raiz ou as raízes de onde começar

names:string()

os nomes dos elementos a remover

Exemplos

Os exemplos abaixo usam este documento de entrada:

<xsl:variable name="in-xml-1" as="item()*">
  <in-xml>
     <a>
        <b>b1</b>
        <c>c1</c>
     </a>
     <c>Mixed <b>content</b></c>
  </in-xml>
</xsl:variable>
<xsl:variable name="in-xml-2" as="item()*">
  <in-xml xmlns:x="http://x">
     <a>
        <x:b>b1</x:b>
        <c>c1</c>
     </a>
     <c>Mixed <b>content</b></c>
  </in-xml>
</xsl:variable>

XPath

Resultado

functx:remove-elements-deep($in-xml-1, 'b')

<in-xml> <a> <c>c1</c> </a> <c>Mixed </c> </in-xml>

functx:remove-elements-deep($in-xml-1, 'a')

<in-xml> <c>Mixed <b>content</b> </c> </in-xml>

functx:remove-elements-deep($in-xml-1, ('b','c'))

<in-xml> <a/> </in-xml>

functx:remove-elements-deep($in-xml-2, 'x:b')

<in-xml> <a> <c>c1</c> </a> <c>Mixed <b>content</b> </c> </in-xml>

Depende de

Veja também