|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: xsl: parsing through specific child nodes
Please find below the solution. Let's say the two XML documents be: x.xml <ZZ> <ABC>XXXXX</ABC> <DEF>YYYYYY</DEF> </ZZ> y.xml <ZZ> <ABC>AAAAA</ABC> <DEF>FFFFFFF</DEF> </ZZ> The stylesheet is: test.xsl <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="yes" /> <xsl:variable name="x" select="document('x.xml')" /> <xsl:variable name="y" select="document('y.xml')" /> <xsl:template match="/"> <Body> <xsl:apply-templates select="$x/ZZ" /> <xsl:apply-templates select="$y/ZZ" /> </Body> </xsl:template> <xsl:template match="ZZ"> <ZZ> <xsl:apply-templates select="*" /> </ZZ> </xsl:template> <xsl:template match="*"> <xsl:copy> <xsl:choose> <xsl:when test=". = 'YYYYYY'"> <xsl:text>DDDDD</xsl:text> </xsl:when> <xsl:when test=". = 'GGGGGG'"> <xsl:text>EEEEEE</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="." /> </xsl:otherwise> </xsl:choose> </xsl:copy> </xsl:template> </xsl:stylesheet> Supposing this is run with Xalan-J as: java org.apache.xalan.xslt.Process -in test.xsl -xsl test.xsl The output is: <?xml version="1.0" encoding="UTF-8"?> <Body> <ZZ> <ABC>XXXXX</ABC> <DEF>DDDDD</DEF> </ZZ> <ZZ> <ABC>AAAAA</ABC> <DEF>FFFFFFF</DEF> </ZZ> </Body> On Fri, Sep 5, 2008 at 10:47 PM, Mohit Anchlia <mohitanchlia@xxxxxxxxx> wrote: > one more question, for above scenario should I be using xsl:key for > mapping purposes. for eg: If I want to change value from A to B for > certain node types? I don't think xsl:key can be useful in this scenario. -- Regards, Mukul Gandhi
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






