views:

97

answers:

3

Hello all

I have the following xml file:

<xfa:data>
  <form1>
    <Page1>
    <Page2>
    <contractInfo> ... </contractInfo>
    <paymentInfo> ... </paymentInfo>
  </form1>
  <commercialType> .... </commercialType>
  <userList> ... </userList>
  <officesList> ... </officesList>
  <commercialType> .... </commercialType>
  <userList> ... </userList>
  <officesList> ... </officesList>
  <commercialType> .... </commercialType>
  <userList> ... </userList>
  <officesList> ... </officesList>
</xfa:data>

I want to remove every ocurrence of the commercialType, userList and officesList nodes, so my output would be :

<xfa:data>
  <form1>
    <Page1>
    <Page2>
    <contractInfo> ... </contractInfo>
    <paymentInfo> ... </paymentInfo>
  </form1>
</xfa:data>

How could I do that using XSLT?

Thank you

A: 

Identity transformation plus <xsl:template match="commercialType" priority="10"/>.

lexicore
+4  A: 

This transformation produces the desired results:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

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

 <xsl:template match="commercialType|userList|officesList"/>
</xsl:stylesheet>
Dimitre Novatchev
Thank you, your prompt response is saving the day here
azathoth
A: 

I had a similar issue.

In my case the userList is having some child nodes and the above mentioned xslt is not of great help.

The xslt removes the userList but not its child elements. Can you please help?

Thanks in advance.

prasann