[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Re: All relavent nodes not printed out...
Subject: Re: [xsl] Re: All relavent nodes not printed out... From: jayanti <jayanti@xxxxxxxxxxxxx> Date: Fri, 24 Oct 2003 11:57:21 -0700 |
Thanks but I am still getting the text associated with units in the output. Also text in descr and default nodes are coming in output too. Here is the xsl with your suggestions: I do not want the text in <descr>, <units>, <default> nodes. All these are child nodes of <Attribute> entity. <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output omit-xml-declaration="yes" indent="no" encoding="iso-8859-1" /> <xsl:template match="objType"> <xsl:text>ObjType</xsl:text>,<xsl:value-of select="@name"/>,<xsl:value-of select="@ReleaseIntroduced"/>,<xsl:value-of select="@ReleaseChanged"/> <xsl:apply-templates/> </xsl:template> <xsl:template match="Attribute"> <xsl:text>Field</xsl:text>,<xsl:value-of select="@name"/>, <xsl:value-of select="@ReleaseIntroduced"/>, <xsl:value-of select="@ReleaseChanged"/> <xsl:value-of select="."/> <xsl:apply-templates/> </xsl:template> <xsl:template match="units"/> <xsl:template match="default"/> <xsl:template match="descr"/> <xsl:template match="*[self::objType or self::Attribute] [not(@ReleaseChanged = 7 or @ReleaseIntroduced = 7 ) ] "/> </xsl:stylesheet> thanks jaya Wendell Piez wrote: > At 01:41 PM 10/23/2003, you wrote: > >Thanks . That worked! However I am getting all the default text nodes printed > >out. The text in "default" and "units" node is printing out. I have template > >match defined (for units and default ) but its still printing "degrees" and > >"unspecified" > >in the output. Is it possible to have a single rule that will eliminate the > >default behaviour of printing text nodes. ? Thanks! > > It is, but you don't want to use it -- it will affect the way text nodes > are handled in general, whereas you only want to suppress particular text > nodes. > > If you want to suppress the contents of <units>, for example, match it with > an empty template, as in > > <xsl:template match="units"/> > > which says "when a units element is matched, do nothing with it". > > Instead, you have > > <xsl:template match="units"> > <xsl:apply-templates/> > </xsl:template> > > which says "when a units element is matched, apply templates to its > children" -- whereas you are now telling us you don't want to see the children. > > Remove the apply-templates instruction and the children (in this case the > text node inside <units>) won't be matched or processed, and won't appear > in the output. > > Cheers, > Wendell > > >Here is a part of xml > > > > <Attribute name="restrictThroughputAfterRmax" label="Restrict Throughput > >After Reaching Rmax" ReleaseIntroduced="7"> > > <descr/> > > <type t="RestrictAfterRmax"/> > > <default>Unspecified</default> > > <units>degrees</units> > > </Attribute> > > > >XSL Below---- > > > >?xml version="1.0"?> > ><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > >version="1.0"> > ><xsl:output omit-xml-declaration="yes" indent="no" encoding="iso-8859-1" > >/> > ><xsl:template match="objType"> > > <xsl:value-of select="@name"/>,<xsl:value-of > >select="@ReleaseIntroduced"/>,<xsl:value-of select="@ReleaseChanged"/> > > <xsl:apply-templates/> > > </xsl:template> > > > ><xsl:template match="Attribute"> > > <xsl:apply-templates/> > > <xsl:value-of select="@name"/>, <xsl:value-of > >select="@ReleaseIntroduced"/>, <xsl:value-of select="@ReleaseChanged"/> > > <xsl:value-of select="."/> > > </xsl:template> > > > ><xsl:template match="units"> > > <xsl:apply-templates/> > ></xsl:template> > > > ><xsl:template match="default"> > > <xsl:apply-templates/> > ></xsl:template> > > > > <xsl:template > > match="*[self::objType or self::Attribute] > > [not(@ReleaseChanged = 7 > > or > > @ReleaseIntroduced = 7 > > ) > > ] "/> > ></xsl:stylesheet> > > > > > > > >Dimitre Novatchev wrote: > > > > > In the template matching "objType" you have to allow that the templates > > > matching and applying process should continue. > > > > > > As is now, no "Attribute" elements are processed because they happen to be > > > descendents of "objType". > > > > > > So you have to add: > > > > > > <xsl:apply-templates/> > > > > > > at the end of the code of the template matching "objType". > > > > > > ===== > > > Cheers, > > > > > > Dimitre Novatchev. > > > http://fxsl.sourceforge.net/ -- the home of FXSL > > > > > > "jayanti" <jayanti@xxxxxxxxxxxxx> wrote in message > > > news:3F96FF56.2F6F146E@xxxxxxxxxxxxxxxx > > > > Hi, > > > > My xml is listed below. > > > > > > > > <?xml version = '1.0' encoding = 'utf-8'?> > > > > <DB1xEV-DO> > > > > <typedef ..... > > > > ....... > > > > > > > > </typedef> > > > > <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"> > > > > ... > > > > </Attribute> > > > > <Attribute name="btsName" label="BTS Name" ReleaseIntroduced="7"> > > > > > > > > .... > > > > </Attribute> > > > > <Attribute name="constantPilot" label="Constant Pilot Mode" > > > > ReleaseIntroduced="1"> > > > > ...... > > > > </Attribute> > > > > <Attribute name="idleModeGain" label="Idle Mode Gain" > > > > ReleaseIntroduced="1"> > > > > <descr/> > > > > </Attribute> > > > > </objType> > > > > </DB1xEV-DO> > > > > > > > > -- xsl is below--- > > > > > > > > <?xml version="1.0"?> > > > > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > > > version="1.0"> > > > > <xsl:output omit-xml-declaration="yes" indent="no" > > > > encoding="iso-8859-1" /> > > > > <xsl:template match="objType"> > > > > <xsl:value-of select="@name"/>,<xsl:value-of > > > > select="@ReleaseIntroduced"/>,<xsl:value-of select="@ReleaseChanged"/> > > > > </xsl:template> > > > > > > > > <xsl:template match="Attribute"> > > > > <xsl:value-of select="@name"/>, <xsl:value-of > > > > select="@ReleaseIntroduced"/>, <xsl:value-of select="@ReleaseChanged"/ > > > > > > > > > <xsl:value-of select="."/> > > > > </xsl:template> > > > > > > > > <xsl:template > > > > match="*[self::objType or self::Attribute] > > > > [not(@ReleaseChanged = 7 > > > > or > > > > @ReleaseIntroduced = 7 > > > > ) > > > > ] "/> > > > > </xsl:stylesheet> > > > > > > > > > > > > My problem is that the above xsl produces only the objType attributes in > > > > > > > > the output not the attributes. Why is that ? and how can I get an output > > > > > > > > that looks like the following: > > > > objType = Cell > > > > AttributeName = CellSiteID > > > > AttributeName = BtsName > > > > .etc... > > > > > > > > thanks in advance > > > > j > > > > > > > > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > > > > > > > > > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > ====================================================================== > Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx > Mulberry Technologies, Inc. http://www.mulberrytech.com > 17 West Jefferson Street Direct Phone: 301/315-9635 > Suite 207 Phone: 301/315-9631 > Rockville, MD 20850 Fax: 301/315-8285 > ---------------------------------------------------------------------- > Mulberry Technologies: A Consultancy Specializing in SGML and XML > ====================================================================== > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: All relavent nodes no, Wendell Piez | Thread | Re: [xsl] Re: All relavent nodes no, Wendell Piez |
Re: [xsl] xsl variable - issue, M. David Peterson | Date | RE: [xsl] xsl:when element test wit, David Carlisle |
Month |