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(_at_)seznam(_dot_)cz]
Sent: 03 June 2004 10:13
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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>
Hi,
I need a little help. I have 2 XML and 2 XSL to view files in IE,
but I need only 1 XSL. Only SOAP header and namespaces is difference
between XML files.
Any help?
...
2. XML:
<?xml version="1.0"?>
<?xml-stylesheet type='text/xsl' href='soap_mytab.xsl'?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
</soap:Header>
<soap:Body>
<receivedocument xmlns="urn:schemas-cp-com:loc">
<BodyDocuments>
<MYTAB xmlns="urn:schemas-cp-com:gen">
<MYHEAD>AAA</MYHEAD>
<MYITEM>
<MYIT>A1</MYIT>
</MYITEM>
<MYITEM>
<MYIT>A2</MYIT>
</MYITEM>
</MYTAB>
</BodyDocuments>
</receivedocument>
</soap:Body>
</soap:Envelope>
2.XSL soap_mytab.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:d="urn:schemas-cp-com:loc"
xmlns:f="urn:schemas-cp-com:gen">
<xsl:output method="html" version="4.0"/>
<xsl:template match="/">
<html><body>
<xsl:apply-templates
select="soap:Envelope/soap:Body/d:receivedocument/d:BodyDocume
nts/f:MYTAB"/>
</body></html>
</xsl:template>
<xsl:template match="f:MYTAB">
<table border="1">
<th>HEAD</th><th><xsl:value-of select="f:MYHEAD"/></th>
<xsl:apply-templates select="f:MYITEM"/>
</table>
</xsl:template>
<xsl:template match="f:MYITEM">
<tr><td>ITEM</td><td><xsl:value-of select="f:MYIT"/></td></tr>
</xsl:template>
</xsl:stylesheet>
____________________________________________________________
Konečně tě vidím barevně. SAMSUNG X450 již od 2577 Kč. www.oskar.cz
http://ad.seznam.cz/clickthru?spotId=74859
--+------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--