Q

Modifying XML rows using XSL sheets

Can you explain how to select and modify or delete a row in an XML file using XSL sheets?
The way you do it is by having an XSLT that selectively copies to the target output. Here's one such file:


<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/ | @* | node()">
    <xsl:if test="not(local-name(.)='Customer' and @Id='02')"> 
      <xsl:copy>
        <xsl:apply-templates select="@* | node()" />
      </xsl:copy>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>
Look at the <xsl:if> element, that tests that the current node is not a Customer with an Id attribute of "2", and in that case, it performs the copy.

For a source file like the following:

<?xml version="1.0" encoding="utf-8" ?> 
<Root>
  <Customer Id="01" />
  <Customer Id="02" />
</Root>
You'd get the following output:
<?xml version="1.0" encoding="utf-8" ?> 
<Root>
  <Customer Id="01" />
</Root>

This was first published in October 2004
This Content Component encountered an error

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchCloudComputing

SearchSoftwareQuality

SearchSOA

TheServerSide

SearchCloudApplications

Close