Hi Folks,
I have an XHTML document. Here is an example:
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>Example</title>
</head>
<body>
<p>
<o:p></o:p>
</p>
</body>
</html>
I want to show the path to each element. I can iterate over all nodes and use
ancestor-or-self along with string-join to show the path:
<xsl:for-each select="//*">
<xsl:value-of select="string-join(for $i in (ancestor-or-self::*) return
name($i), '/')"/>
</xsl:for-each>
Here is one of the paths that is generated:
html/body/p/o:p
Unfortunately, that path expression is missing crucial information:
- html, body, p are in the http://www.w3.org/TR/REC-html40 namespace
- the "o" prefix is bound to the urn:schemas-microsoft-com:office:office
namespace
It is vital that I have that information because I want to generate XHTML
instances from the path expressions. For example, for the above path expression
I will generate:
<html xmlns="http://www.w3.org/TR/REC-html40"
xmlns:o="urn:schemas-microsoft-com:office:office">
<body>
<p>
<o:p></o:p>
</p>
</body>
</html>
How to generate a path expression which shows the namespace that each element
on the path belongs to and the namespace that each namespace prefix is bound to?
/Roger
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--