functx:remove-attributes-deep
Remove atributos de um fragmento XML, pelo nome
Descrição
A função functx:remove-attributes-deep remove atributos de uma sequência de elementos e de todos os descendentes deles. 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. 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 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">
<b attr1="xzy">abc</b>
</a>
</xsl:variable>
<xsl:variable name="in-xml-2" as="item()*">
<a xmlns:a="http://a" a:attr1="123" attr1="456">
<b a:attr1="ghi" attr1="xzy">abc</b>
</a>
</xsl:variable>
XPath |
Resultado |
|---|---|
functx:remove-attributes-deep($in-xml-1, ('attr1','attr2')) |
<a> <b>abc</b> </a> |
functx:remove-attributes-deep($in-xml-1, ('attr1','attr3')) |
<a attr2="456"> <b>abc</b> </a> |
functx:remove-attributes-deep($in-xml-2, 'a:attr1') |
<a attr1="456"> <b attr1="xzy">abc</b> </a> |