Subject: RE: [xsl] rendering marginal XML From: "McNally, David" <David.McNally@xxxxxxxxxx> Date: Fri, 26 Oct 2001 16:09:26 -0400 |
> > <msgSent> > > <time>time sent</time> > > <origin>me@xxxxxxxx</origin> > > <r>you@xxxxxxxxx</r> > > <recieved>time recieved</recieved> > > <status>Any error messages, etc</status> > > <r>you2@xxxxxxxxx</r> > > <recieved>time recieved</recieved> > > <status>Any error messages, etc</status> > > (this repeats for each recipient) > > </msgSent> > > (this repeats for each message) > > > > The problem is the <recieved> and <status> tags refer to the > > imediately preceding <r> tag. > > If the structure is sufficiently regular you can add the necessary > <recipient> element by doing > > <xsl:template match="r"> > <recipient> > <name><xsl:value-of select="."/></name> > <received><xsl:value-of > select="following-sibling::recieved[1]"/></received> > <status><xsl:value-of > select="following-sibling::status[1]"/></status> > </recipient> > </xsl:template> > Or, to deal with missing Status elements: <xsl:template match="r"> <xsl:if test="string(following-sibling::*[2]/self::*[name(.)='status'])"> <recipient> <name><xsl:value-of select="."/></name> <received><xsl:value-of select="following-sibling::recieved[1]"/></received> <status><xsl:value-of select="following-sibling::status[1]"/></status> </recipient> </xsl:if> </xsl:template> David. -- David McNally Software Engineer Moody's Investors Service XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] rendering marginal XML, Chris Bayes | Thread | RE: [xsl] rendering marginal XML, Chris Bayes |
Re: [xsl] How to read the encoding , James Garriss | Date | [xsl] ANN: Internet-live XML-relate, G. Ken Holman |
Month |