[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Embedding the XPath of an input Text Fragment in
At 08:47 PM 6/11/2008, you wrote:
Here's a basic 1.0 solution that should return the xpath creation you describe.... And here's some generic XSLT 1.0 that will return an XPath for any node on request. Just apply templates in the "xpath" mode to the node for which you want the path. 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="*" mode="xpath-step"> <xsl:text>/</xsl:text> <xsl:value-of select="name()"/> <xsl:if test="count(../*[name()=name(current())]) > 1"> <xsl:text>[</xsl:text> <xsl:value-of select="count(preceding-sibling::*[name()=name(current())]) + 1"/> <xsl:text>]</xsl:text> </xsl:if> </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="processing-instruction()" mode="xpath-step"> <xsl:text>/processing-instruction()</xsl:text> <xsl:if test="count(../processing-instruction()) > 1"> <xsl:text>[</xsl:text> <xsl:value-of select="count(preceding-sibling::processing-instruction()) + 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> </xsl:stylesheet>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|