Subject: Re: [xsl] Re: All relavent nodes not printed out... From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Fri, 24 Oct 2003 15:59:31 -0400 |
<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="."/> <!-- THIS INSTRUCTION --> <xsl:apply-templates/> </xsl:template>
Cheers, Wendell
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
====================================================================== 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 ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: All relavent nodes no, jayanti | Thread | [xsl] best way to store ad-hoc HTML, Terence Kearns |
RE: [xsl] xsl:when element test wit, David Carlisle | Date | RE: [xsl] xsl:when element test wit, Wendell Piez |
Month |