2015-12-16 3 views
1

У меня есть много файлов XML, которые имеют что-то вида:Удаление нежелательных элементов из файла XML с помощью XSLT

<param> 
<name>hello</name> 
<value>world</world> 
</param> 

Что я хочу быть удалены из файла.

Использование XSL, как я могу это сделать?

я узнал, что если я имел то же самое в формате

<param name="hello" value="world"/> 

тогда следующий XSL будет делать трюк

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="param[@name='hello']"/> 
</xsl:stylesheet> 

Я использую Java transfromer так что любой основе Java решение будет также Работа.

ответ

0

Для удаления элементов в формате размещен в верхней части вопроса, вы можете просто изменить match атрибут 2 шаблона, чтобы быть следующим:

<xsl:template match="param[name='hello']"/> 

xsltransform demo

С символ @ в начале удаляется, выражение теперь соответствует param элементам с name дочернее значение элемента равно "hello".

+0

спасибо .. он работал как магия – mohit

Смежные вопросы