Subject: RE: [xsl] Checking for nodes in other nodes From: "Simon, Jb" <jb.simon@xxxxxxxx> Date: Tue, 07 Jun 2005 15:27:50 -0400 |
Many Thanks one again a slight variation (changed for my exact schema) of what Omprakash.V sent worked great. -------------------------------- This Sig Intentionally Left Blank > -----Original Message----- > From: Touchtel [mailto:omprakashv@xxxxxxxxxxxxxxxxx] > Sent: Tuesday, June 07, 2005 12:29 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: RE: [xsl] Checking for nodes in other nodes > > > Hi, > You may want to try the following XSL. (Thanks to Bruce for > setting me on the right track). > > <?xml version="1.0" encoding="utf-8" ?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:output method="xml" encoding="UTF-8" indent="yes"/> > > <xsl:key name="equip" match="/Root/Equipment" > use="/Root/Equipment/Message/Field/EnumeratedType"/> > > <xsl:template match="/Root"> > > <xsl:for-each select="/Root/EnumeratedType"> > > <xsl:variable name="var" select="Name"/> > > <xsl:value-of select="count(key('equip', $var))"/> > > </xsl:for-each> > > </xsl:template> > > <xsl:template match="/Root/Equipment"> > > <xsl:value-of select="."/> > > </xsl:template> > > </xsl:stylesheet> > > My input XML: > > <Root> > <EnumeratedType> > <Name>Speed Type</Name> > <Enumeration> > <Name>Low</Name> > <Value>1</Value> > </Enumeration> > <Enumeration> > <Name>Med</Name> > <Value>5</Value> > </Enumeration> <Enumeration> > <Name>High</Name> > <Value>8</Value> > </Enumeration> > </EnumeratedType> > > <Equipment> > <Name>Motor</Name> > <Message> > <Name>Motor Speed</Name> > <Field> > <Name>MotorID</Name> > <DataType>integer</DataType> > </Field> > <Field> > <Name>Speed</Name > > <DataType>Enumerated Type</DataType> > <EnumeratedType>Speed Type</EnumeratedType> > </Field> > </Message> > </Equipment> > > <Equipment> > <Name>Alternator</Name> > <Message> > <Name>Motor Speed</Name> > <Field> > <Name>MotorID</Name> > <DataType>integer</DataType> > </Field> > <Field> > <Name>Speed</Name > > <DataType>Enumerated Type</DataType> > <EnumeratedType>Speed Type</EnumeratedType> > </Field> > </Message> > </Equipment> > > > </Root> > > The stylesheet correctly produced the output 2. > > Cheers, > Omprakash.V > > > > -----Original Message----- > From: Simon, Jb [mailto:jb.simon@xxxxxxxx] > Sent: Tuesday, June 07, 2005 9:00 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Checking for nodes in other nodes > > > > > Given the following XML > > <EnumeratedType> > <Name>Speed Type</Name> > <Enumeration> > <Name>Low</Name> > <Value>1</Value> > </Enumeration> > <Enumeration> > <Name>Med</Name> > <Value>5</Value> > </Enumeration> <Enumeration> > <Name>High</Name> > <Value>8</Value> > </Enumeration> > </EnumeratedType> > > <Equipment> > <Name>Motor</Name> > <Message> > <Name>Motor Speed</Name> > <Field> > <Name>MotorID</Name> > <DataType>integer</DataType> > </Field> > <Field> > <Name>Speed<Name > > <DataType>Enumerated Type</DataType> > <EnumeratedType>Speed Type</EnumeratedType> > </Field> > </Message/ > </Equipment> > > What I need to be able to determine is if an enumerated type is used in > more than one equipment. (The XSL is used to generate C code, and each > equipment is generated to a different file. If the type is used in > multiple pieces of equipment then it should be generated to a > "common_types.h" file, if it is only used by ne piece of equipment then > it should be generated in that equipment's file) > > Currently I can use the same .xsl to generate the different files, using > a command line parameter, however, all of the enumerated types are > generates to all files at this point. I'm pretty noob and cluless about > xslt, so I don't even know where to begin to attempt this part of the > task. > > Thanks > Joe Simon > > -------------------------------- > This Sig Intentionally Left Blank
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Checking for nodes in oth, Touchtel | Thread | [xsl] Pipe Question, Karl Stubsjoen |
Re: [xsl] nesting non-nested nodes, Rudolf P . Weinmann | Date | RE: [xsl] nesting non-nested nodes, Chris Loschen |
Month |