Subject: RE: [xsl] 1 XSL for 2 XML From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 14 Jun 2004 12:47:57 +0100 |
> So, is it better to use > <xsl:template match="f:MYTAB|MYTAB"> > than > <xsl:template match="*[local-name(.)='MYTAB']"> Probably the former. But my preferred solution would be that if the input is in the "wrong" namespace, you should first do a transformation that puts it in the correct namespace, and your main transformation then doesn't have to deal with these complexities. Michael Kay > ?? > > <?xml version="1.0"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:f="urn:schemas-cp-com:gen"> > <xsl:output method="html" version="4.0"/> > <xsl:template match="/"> > <html><body> > <xsl:apply-templates select="//f:MYTAB|//MYTAB"/> > </body></html> > </xsl:template> > > <xsl:template match="f:MYTAB|MYTAB"> > <table border="1"> > <th>HEAD</th><th> > <xsl:value-of select="MYHEAD"/><xsl:value-of select="f:MYHEAD"/></th> > <xsl:apply-templates select="f:MYITEM|MYITEM"/> > </table> > </xsl:template> > > <xsl:template match="f:MYITEM|MYITEM"> > <tr><td>ITEM</td> > <td><xsl:value-of select="MYIT"/><xsl:value-of > select="f:MYIT"/></td></tr> > </xsl:template> > </xsl:stylesheet> > > > > Selecting by local-name like this is not a very good idea, > when all you are > > trying to do is to avoid specifying a correct namespace > prefix. Firstly, > > it's selecting/matching elements that it shouldn't > (elements in the wrong > > namespace). > > > > Secondly, with Saxon at any rate, it makes the search for a matching > > template rule very inefficient. Saxon organizes rules by > the node-kind and > > node-name of the nodes that are matched, and then looks for > "generic" rules > > that can match multiple node kinds or multiple node-names. > If all the rules > > are generic, as here, then it potentially tries to match > each element > > against every rule. > > > > Michael Kay > > > > > -----Original Message----- > > > From: Petr Mach3 [mailto:Mach3P@xxxxxxxxx] > > > Sent: 03 June 2004 10:13 > > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > Subject: Re: [xsl] 1 XSL for 2 XML > > > > > > Found answer, but ... > > > Is it possible to use exclude-result-prefixes="f" ???? > > > It doesn't work for me. > > > > > > <?xml version="1.0"?> > > > <xsl:stylesheet version="1.0" > > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > > xmlns:f="urn:schemas-cp-com:gen"> > > > <xsl:output method="html" version="4.0"/> > > > > > > <xsl:template match="/"> > > > <html><body> > > > <xsl:apply-templates select="//*[local-name(.)='MYTAB']"/> > > > </body></html> > > > </xsl:template> > > > > > > <xsl:template match="*[local-name(.)='MYTAB']"> > > > <table border="1"> > > > <th>HEAD</th> > > > <th><xsl:value-of select="MYHEAD"/><xsl:value-of > > > select="f:MYHEAD"/></th> > > > <xsl:apply-templates select="*[local-name(.)='MYITEM']"/> > > > </table> > > > </xsl:template> > > > > > > <xsl:template match="*[local-name(.)='MYITEM']"> > > > <tr><td>ITEM</td> > > > <td><xsl:value-of select="MYIT"/><xsl:value-of > > > select="f:MYIT"/></td></tr> > > > </xsl:template> > > > </xsl:stylesheet> > > ____________________________________________________________ > Neomezený internet bez jakékoli smlouvy, kdykoli vás napadne. > A navíc 30 volných minut na volání! S předplacenou službou Go > Data Nonstop vše jen za 850 Kč měsíčně. > http://ad.seznam.cz/clickthru?spotId=75021 > > --+------------------------------------------------------------------ > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ > or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx> > --+-- > >
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] 1 XSL for 2 XML, Petr Mach3 | Thread | xslt a mixed html and xml file, Stephen Tredrea |
xslt a mixed html and xml file, Stephen Tredrea | Date | RE: [xsl] xslt a mixed html and xml, Michael Kay |
Month |