[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Stylesheet listing elements and attributes [Was: a key of a
Inspired by your mail: <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" > <xsl:output method="text"/> <xsl:key name="elements" match="*" use="name()"/> <xsl:key name="attributes" match="@*" use="concat(name(parent::*),':::',name())"/> <xsl:key name="allSameAttributes" match="@*" use="name(parent::*)"/> <xsl:template match = "*" > <xsl:if test="generate-id() = generate-id(key('elements',name()))"> <xsl:text>
</xsl:text> <xsl:value-of select="name()"/> <xsl:apply-templates select="key('allSameAttributes',name())"/> </xsl:if> <xsl:apply-templates/> </xsl:template> <xsl:template match="@*"> <xsl:if test="position()=1"> <xsl:text> [ </xsl:text> </xsl:if> <xsl:if test="generate-id() = generate-id(key('attributes',concat(name(parent::*),':::',name())))"> <xsl:value-of select="name()"/> <xsl:text> </xsl:text> </xsl:if> <xsl:if test="position()=last()"> <xsl:text> ] </xsl:text> </xsl:if> </xsl:template> <xsl:template match="text()"/> </xsl:stylesheet> Sebastian Rahtz wrote: > > I want to set up an XSLT key of attribute occurrences indexed by the > name of the element they occur in, so I said > > <xsl:key name="atts" match="@*" use="name(..)"/> > > but when I later say eg > > <xsl:for-each select="key('atts','xptr')"> > > I get no results. Am I misunderstanding something about keys? > ".." from an attribute seems to return the element name > if I do it by hand. > > If anyone feels strong enough to solve the whole problem, what I am > writing is a stylesheet to list all the different element names in a > document, and for each one list all the attributes used, and for each > attribute list the values used. It sounds easier in theory than it is in > practice, I am finding. anyone have a canned solution? > > sebastian > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list -- ****************************************** <firstName> Miloslav </firstName> <surname> Nic </surname> <mail> nicmila@xxxxxxxxx </mail> <support> http://www.zvon.org </support> <zvonMailingList> http://www.zvon.org/index.php?nav_id=4 </zvonMailingList> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|