xsl-list
[Top] [All Lists]

[xsl] Getting at namespace-prefix used in source document

2006-09-10 07:22:32
Hello,

is there a way in XSLT to determine the namespace prefix used in the
source document for a given namespace name?

The issue I need to solve is that I have a source document with
namespaced elements, which I need to move to the null (or some other)
namespace using XSLT. However, the source document also includes an
embedded CSS 2.1 stylesheet, which of course is written in a way to
match the prefixes used in the source. When porting the document to the
null namespace, I have to remove the prefixes in the CSS 2.1 code too,
see this conceptual example:

--source--
<ns:document xmlns:ns="http://example.com"; xmlns:html="http://the-usual-ns";>
  <ns:style type="text/css">
    ns\:par { font-weight: bold; }
    html\:table { width: 10cm; }
  </style>
  <ns:par>A paragraph.</ns:par>
  ...
</ns:document>


--desired result--
<document xmlns:html="http://the-usual-ns";>
  <style type="text/css">
    par { font-weight: bold; }
    html\:table { width: 10cm; }
  </style>
  <par>A paragraph.</par>
  ...
</document>


To make my stylesheet independent from the namespace prefix actually
used in the source document, I think I need to know the namespace prefix
used for "http://example.com"; in the source document. Is there a way to
get at this, or is the only solution to pass it as a parameter to my
XSLT (and seeing how I can provide this info, e.g. by some custom code
peeping into the XML with a little SAX parsing)?

Regards, Christian.


--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>