Subject: [xsl] copy-of problem in child node, unable to get parent in output From: jayanti <jayanti@xxxxxxxxxxxxx> Date: Tue, 21 Oct 2003 10:25:04 -0700 |
My XML is below. <?xml version = '1.0' encoding = 'utf-8'?> <DB1xEV-DO> <typedef ..... ....... </typedef> <ECPGeneric> ... </ECPGeneric> <objType name="Cell" label="BTS" ReleaseIntroduced="1" ReleaseChanged="7"> <Description>This is the description</Description> <Attribute name="CellSiteId" label="BTS ID" ReleaseIntroduced="1" ReleaseChanged="7"> <descr/> <type t="int"> <range min="1" max="600" step="1"/> </type> </Attribute> <Attribute name="btsName" label="BTS Name" ReleaseIntroduced="7"> <descr/> <type t="string"> <size> <range min="1" max="11" step="1"/> </size> </type> <NullValue Value=" "/> </Attribute> <Attribute name="constantPilot" label="Constant Pilot Mode" ReleaseIntroduced="1"> <descr/> <type t="PilotMode"/> <default>Normal</default> </Attribute> <Attribute name="idleModeGain" label="Idle Mode Gain" ReleaseIntroduced="1"> <descr/> </Attribute> </objType> </DB1xEV-DO> ------ My xsl is: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output indent="yes" encoding="iso-8859-1" /> <xsl:template match="DB1xEV-DO"> <xsl:for-each select="typedef|ECPGeneric|ChangeTag"> <xsl:copy-of select="." /> </xsl:for-each> <xsl:for-each select="objType"> <xsl:when test="@ReleaseIntroduced='7'"> <xsl:copy-of select="." /> </xsl:when> <xsl:when test="@ReleaseChanged='7'"> <xsl:for-each select="Attribute"> <xsl:choose> <xsl:when test="@ReleaseChanged='7'"> <xsl:copy-of select="." /> </xsl:when> <xsl:when test="@ReleaseIntroduced='7'"> <xsl:copy-of select="." /> </xsl:when> </xsl:choose> </xsl:for-each> </xsl:choose> </xsl:for-each> </xsl:template> </xsl:stylesheet> The purpose is to output only those ObjType and Attrribute elements where the ReleaseChanged tag = 7 or ReleaseIntroduced=7 So here are my questions : 1) When the above xsl is applied using Xalan, the output looks like this: I do not get the objType element to print out. (I want to get the objType element) However, I get only the Attribute elements. <Attribute name="CellSiteId" label="BTS ID" ReleaseIntroduced="1" ReleaseChanged="7"> <descr/> <type t="int"> <range min="1" max="600" step="1"/> </type> </Attribute> <Attribute name="btsName" label="BTS Name" ReleaseIntroduced="7"> <descr/> <type t="string"> <size> <range min="1" max="11" step="1"/> </size> </type> <NullValue Value=" "/> </Attribute> 2) Another problem is that I do not get the "descr" element to print out in the output. I want all elements (other than Attribute) to be just copied from the source xml. For attribute, I want to print it out only if ReleaseChanged =7 or ReleaseIntroduced=7. thanks j XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] how to always call a temp, Xiaocun Xu | Thread | [xsl] Re: copy-of problem in child , Dimitre Novatchev |
[xsl] how to always call a template, Xiaocun Xu | Date | [no subject], Jonny Pony |
Month |