2015-08-31 3 views
0

Это может быть простая проблема xslt. У меня есть XML, как следует,XSLT - удалить несколько узлов и добавить новый узел

<doc> 
    <chap> 
     <p>This is a para</p> 
    </chap> 
</doc> 

что мне нужно удалить как <doc> и <chap> узел и добавить узел в результате трех.

SO выход должен быть,

<new> 
    <p>This is a para</p> 
</new> 

, когда я пишу шаблон для

<xsl:template match="doc"> 
     <new><xsl:apply templates/></new> 
    </template> 

добавляет <chap> в результирующее дерево.

, когда я пишу шаблон для <chap>

<xsl:template match="chap"> 
     <new><xsl:apply templates/></new> 
    </template> 

добавляет <doc> в результирующее дерево.

и я не могу подавить любые элементы, такие как <xsl:template match="chap"/>. так как он удаляет дочерние узлы.

Как получить желаемый результат с помощью xsl?

+0

По-видимому, у вас есть другие шаблоны в вашей таблице стилей, которые вы нам не показываете. –

ответ

1

Используйте <xsl:template match="doc"><xsl:apply-templates/><xsl:template>, то вы можете использовать

<xsl:template match="chap"> 
     <new><xsl:apply templates/></new> 
</template> 

вместе с шаблоном преобразования идентичности Вы, наверное, тоже (хотя вы не показали его).

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