Subject: Re: [xsl] Find several different attribute values on many elements From: "G. Ken Holman g.ken.holman@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 8 Feb 2024 22:19:33 -0000 |
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()?
-- Contact info, blog, articles, etc. http://www.CraneSoftwrights.com/s/ | Check our site for free XML, XSLT, XSL-FO and UBL developer resources | Streaming hands-on XSLT/XPath 2 training class @US$125 (5 hours free) | Essays (UBL, XML, etc.) http://www.linkedin.com/today/author/gkholman |
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Find several different attrib, dvint@xxxxxxxxx | Thread | Re: [xsl] Find several different at, dvint dvint@xxxxxxxx |
[xsl] Find several different attrib, dvint@xxxxxxxxx | Date | Re: [xsl] Find several different at, Martin Honnen martin |
Month |