Subject: RE: [xsl] Embedding the XPath of an input Text Fragment in output From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Thu, 12 Jun 2008 10:42:07 -0400 |
Here's a basic 1.0 solution that should return the xpath creation you describe....
Cheers, Wendell
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="node()" mode="xpath"> <xsl:apply-templates select="ancestor::*|." mode="xpath-step"/> </xsl:template>
<xsl:template match="/" mode="xpath-step"> <xsl:text>/</xsl:text> </xsl:template>
<xsl:template match="text()" mode="xpath-step"> <xsl:text>/text()</xsl:text> <xsl:if test="count(../text()) > 1"> <xsl:text>[</xsl:text> <xsl:value-of select="count(preceding-sibling::text()) + 1"/> <xsl:text>]</xsl:text> </xsl:if> </xsl:template>
<xsl:template match="comment()" mode="xpath-step"> <xsl:text>/comment()</xsl:text> <xsl:if test="count(../comment()) > 1"> <xsl:text>[</xsl:text> <xsl:value-of select="count(preceding-sibling::comment()) + 1"/> <xsl:text>]</xsl:text> </xsl:if> </xsl:template>
<xsl:template match="@*" mode="xpath-step"> <xsl:text>/@</xsl:text> <xsl:value-of select="name()"/> </xsl:template>
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Embedding the XPath of an, Ryan Graham | Thread | Re: [xsl] Embedding the XPath of an, David Carlisle |
Re: [xsl] XSLT Compiler for C/C++?, Andrew Welch | Date | Re: [xsl] Embedding the XPath of an, David Carlisle |
Month |