'Remove ^ char from XML file in XSLT transformation
I have the sample XML file which contains "^^" i need to remove it from all over places.
There is 'n' number of possibility to find "^^" in XML so i can't select based on XPATH.
Thanks in advance.
Input
<CATALOG>
<CD>
<TITLE>^^Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia^^</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>^^Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>^^CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
Desire Output
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
I tried something like this.
<xsl:template match="@*|*|processing-instruction()">
<xsl:copy>
<xsl:apply-templates select="*|@*|translate(text(),'^^',' ')|processing-instruction()"/>
</xsl:copy>
</xsl:template>
But it is not working
Solution 1:[1]
Use the translate() function to remove all occurrences of the ^ character from all text nodes.
Added:
As explained in the comments, you should use the identity transform template alongside an overriding template matching any text node:
XSLT 1.0
<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"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()" priority="0">
<xsl:value-of select="translate(., '^', '')"/>
</xsl:template>
</xsl:stylesheet>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
