Как удалить дочерние элементы, узлы и родительские элементы в xml с помощью xsl.Как удалить элементы xml с помощью xsl?
вот мой xml-код.
<?xml version="1.0" encoding="UTF-8"?>
<Checkpax xmlns="http://xml.api.com/test">
<customerLevel>
<surname>MUKHERJEE</surname>
<type>A</type>
<gender>M</gender>
<otherPaxDetails>
<givenName>JOY</givenName>
<title>MR</title>
<age>11</age>
</otherPaxDetails>
<otherPaxDetails>
<title>MR</title>
</otherPaxDetails>
<staffDetails>
<staffInfo/>
<staffCategoryInfo>
<attributeDetails>
<attributeType>NA</attributeType>
</attributeDetails>
</staffCategoryInfo>
</staffDetails>
<productLevel>
<legLevel>
<legLevelIndicator>
<statusDetails>
<indicator>abc</indicator>
<action>1</action>
</statusDetails>
</legLevelIndicator>
</legLevel>
</productLevel>
<CustomerLevel>
<legLevel>
<legLevelIndicator>
<statusDetails>
<indicator>cde</indicator>
<action>1</action>
</statusDetails>
</legLevelIndicator>
</legLevel>
</CustomerLevel>
</customerLevel>
</Checkpax>
Ожидаемый выход XML:
<Checkpax xmlns="http://xml.api.com/test">
<paxDetails>
<surname>MUKHERJEE</surname>
<gender>M</gender>
</paxDetails>
<otherPaxDetails>
<title>MR</title>
<age>11</age>
</otherPaxDetails>
<otherPaxDetails>
<title>MR</title>
</otherPaxDetails>
<staffDetails>
<staffCategoryInfo>
<attributeDetails>
<attributeType>NA</attributeType>
</attributeDetails>
</staffCategoryInfo>
</staffDetails>
<legLevelIndicator>
<statusDetails>
<indicator>abc</indicator>
</statusDetails>
</legLevelIndicator>
<CustomerLevel>
<legLevel>
<legLevelIndicator>
<indicator>cde</indicator>
<action>1</action>
</legLevelIndicator>
</legLevel>
</CustomerLevel>
</Checkpax>
XSL я попытался с моей стороны:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://xml.api.com/test"
xmlns:ns0="http://xml.api.com/test"
exclude-result-prefixes="ns0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- Identity transform -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<!-- Apply all child nodes; don't copy the element itself -->
<xsl:template match="ns0:customerLevel| ns0:customerDetails| ns0:paxDetails">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
Просьба предложить таблицу стилей для получения ожидаемого XML output.i не знаете reminging вещи, как удалить element.also это поможет много для многих людей, которые ищут удаление элемента в xml с помощью xsl.
дать мне несколько советов, как удалить тег под элементом otherPaxDetails @ michael.hor257k – sathya
@vidya Смотрите правку на мой пост.. –
да это полезно. Работа для меня. Конечно, я отметю это. @ Michael.hor257k – sathya