functx:remove-elements-not-contents
Remove elementos XML descendentes, mas mantém o conteúdo deles
Descrição
A função functx:remove-elements-not-contents remove, pelo nome, elementos descendentes de todos os nós de $nodes, mas mantém o conteúdo dos elementos removidos. É útil, por exemplo, para tirar formatação no meio do texto. 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>
<b>b1</b>
<c>c1</c>
</a>
<c>Mixed <x:b>content</x:b></c>
</in-xml>
</xsl:variable>
XPath |
Resultado |
|---|---|
functx:remove-elements-not-contents($in-xml-1, 'b') |
<in-xml> <a>b1<c>c1</c> </a> <c>Mixed content</c> </in-xml> |
functx:remove-elements-not-contents($in-xml-1, ('b','c')) |
<in-xml> <a>b1c1</a>Mixed content </in-xml> |
functx:remove-elements-not-contents($in-xml-1, 'a') |
<in-xml> <b>b1</b> <c>c1</c> <c>Mixed <b>content</b> </c> </in-xml> |
functx:remove-elements-not-contents($in-xml-2, 'x:b') |
<in-xml> <a> <b>b1</b> <c>c1</c> </a> <c>Mixed content</c> </in-xml> |