Удалить XmlNodes с преобразованием xslt - PullRequest
0 голосов
/ 28 ноября 2009

Мне нужно скопировать некоторые XML-узлы из XML-документа. Источник

<root>
    <customElement>
        <child1></child1>
        <child2></child2>
    </customElement>
    <child3></child3>
    <child4></child4>
</root>

результат должен быть

<root>
    <child1></child1>
    <child2></child2>
    <child3></child3>
    <child4></child4>
</root>

Как видите, удален только элемент 'customElement', но дочерние элементы все еще являются частью результирующего документа. Как я могу сделать это с помощью преобразования xslt.

1 Ответ

2 голосов
/ 28 ноября 2009

Вот простое решение:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="no"/>

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

<!-- here we specify behavior for the node to be removed -->
<xsl:template match="customElement">
   <xsl:apply-templates select="@*|node()"/>
</xsl:template>

</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...