Quero remover texto desnecessário dentro de valores em elementos no arquivo xml e quero usar uma transformação XSLT para fazer isso.
Neste arquivo de exemplo, quero remover tags específicas como <br>
,, dentro do valor dos elementos.<preffix>
<suffix>
<Value>
Haverá muitos <Product>
elementos. E não quero alterar a estrutura desse arquivo, então deve ser como uma cópia, mas com lógica para remover textos específicos.
Tentei usar modelos e copiar, mas de alguma forma não consigo conectá-los.
Se algum de vocês pudesse me ajudar ou me dar dicas que eu deveria seguir, eu agradeceria.
<ProductInfo>
<Products>
<Product>
<Name>xyz</Name>
<Values>
<Value><br/>test</Value> <-- remove <br/>
<Value><preffix/>test2</Value> <-- remove <preffix>
<Value><suffix/>test3</Value> <-- remove <suffix/>
</Values>
</Product>
<Product>
<Name>xyz</Name>
<Values>
<Value><br/>test</Value> <-- remove <br/>
<Value><preffix/>test2</Value> <-- remove <preffix>
<Value><suffix/>test3</Value> <-- remove <suffix/>
</Values>
</Product>
</Products>
</ProductInfo>
O arquivo de saída deve ser semelhante a:
<ProductInfo>
<Products>
<Product>
<Name>xyz</Name>
<Values>
<Value>test</Value>
<Value>test2</Value>
<Value>test3</Value>
</Values>
</Product>
<Product>
<Name>xyz</Name>
<Values>
<Value>test</Value>
<Value>test2</Value>
<Value>test3</Value>
</Values>
</Product>
</Products>
</ProductInfo>
A seguinte folha de estilo:
XSLT 1.0
removerá qualquer marcação contida em um
Value
elemento, retornando apenas o valor da string - ou seja, "a concatenação dos valores da string de todos os descendentes do nó de texto do nó do elemento na ordem do documento" .Você pode fazer isso com uma transformação de identidade com modelos vazios adicionais correspondentes ao conteúdo que você deseja descartar/remover.
Você poderia ter modelos de correspondência vazios separados para cada um desses padrões de correspondência em vez de usar a
|
união.Além disso, se você quiser remover todos os elementos que aparecem dentro dos
Value
elementos, poderá combinar de forma mais genérica comValue/*
.