This is probably a trivial issue, but I'm new to XSL 2.
Basically this is to do with both XSLT1 and 2
Your Xpaths work relative to the namespace ...
So if your document element is in a perticular namespace, then your
Xpaths should change accordingly..
You can come across this by either
**************telling your stylesheet what the default namespace would
be by using xpath-default-namespace=""
OR
*********** declaring a namespace prefix in the stylesheet and use
it to refer to the nodes in the xpath
like xmlns:myns = "http://foo.com"
and then refer to the nodes like myns:nodename
also...
with ,,,
<xsl:template match="/">
<xsl:apply-templates select="." />
</xsl:template>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
You are very very likely to run into Infinite recursion ....
you probably want ...
somethiing like this...
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:mns = "http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="mns:body">
<!-- never matched -->
hi
<xsl:sequence select="."/>
</xsl:template>
</xsl:stylesheet>
hth
Vasu Chakkera..
2011/2/15 Merrilees, David
<David(_dot_)Merrilees(_at_)uk(_dot_)tesco(_dot_)com>:
Hi
I'm having trouble matching a template in XSLT2. When I add a default
namespace to my input document, my templates no longer match any elements.
Input:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Text Chybějící for key: Welcome in cs-CZ</title>
<meta charset="utf-8" />
</head>
<body id="home">
<div id="footer">
<p>
(c) Tesco.com 2011
</p>
</div>
</body>
</html>
XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="2.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="xsl">
<xsl:template match="/">
<xsl:apply-templates select="." />
</xsl:template>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="body">
<!-- never matched -->
hi
<xsl:sequence select="."/>
</xsl:template>
</xsl:stylesheet>
This is probably a trivial issue, but I'm new to XSL 2.
Thanks
David Merrilees
This is a confidential email. Tesco may monitor and record all emails. The
views expressed in this email are those of the sender and not Tesco.
Tesco Stores Limited
Company Number: 519500
Registered in England
Registered Office: Tesco House, Delamare Road, Cheshunt, Hertfordshire EN8 9SL
VAT Registration Number: GB 220 4302 31
--~------------------------------------------------------------------
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>
--~--
--
Vasu Chakkera
NodeLogic Limited
Oxford
www.nodelogic.org
==============
--~------------------------------------------------------------------
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>
--~--