[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Find several different attribute values on many elemen
I'm trying to process a collection of documents and extract the
distinct-values for several attributes. My first attempt was this which
is very slow
<xsl:variable name="ditacollectionString" select="concat($srcPath, '?select=*.dita')"/> <xsl:variable name="xmlcollectionString" select="concat($srcPath, '?select=*.xml')"/> <xsl:for-each select="distinct-values(collection($ditacollectionString)//*/@audience)" > <xsl:value-of select="concat(., ' ')"/> </xsl:for-each> <xsl:for-each select="distinct-values(collection($ditacollectionString)//*/@platform)" > <xsl:value-of select="concat(., ' ')"/> </xsl:for-each> <xsl:for-each select="distinct-values(collection($ditacollectionString)//*/@props)" > <xsl:value-of select="concat(., ' ')"/> </xsl:for-each> I'm looking for a way to just make a single for-each loop and tried this <xsl:for-each select="distinct-values(collection($ditacollectionString)//element())" > <xsl:apply-templates mode="conditions"/> </xsl:for-each> <xsl:template match="@product | @audience " mode="conditions"> <xsl:value-of select="concat(., ' ')"/> </xsl:template> But I get an error on the <xsl:apply-templates mode="conditions"/> indicating The required item type of the context item is node(), but the supplied expression {.} has item type xs:anyAtomicType. I also need to do this with both .dita and .xml files and I'm planning on making 2 collections, is there a way to do one collection()?
|
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
|