Print

Print


Were you not able to do:

<xsl:variable name="uniqueTypes" select="distinct-values(//container/@type)" />

You definitely need the xpath 1.0 workaround?

On Thu, Apr 26, 2012 at 2:49 PM, Michele R Combs <[log in to unmask]> wrote:
> Thanks for all your feedback, everybody.� It�s becoming clearer what the
> problem is, so let me sum up.
>
>
>
> What (apparently) this <xsl:variable> is supposed to do is grab ONE of each
> container type that exists -- it needs to know how many there are up front,
> so it can allocate a column in the table for each one.� So if my document
> has a hundred <container> elements but the only @type attributes are Box,
> Folder and Reel, the variable hunts through them all and ends up with three
> container types.
>
>
>
> Right now, it says this:
>
>
>
> <xsl:variable name="uniqueTypes"
> select="ead/archdesc/dsc/descendant::*/container[not(@type=following::*/container/@type)]/@type"
> />
>
>
>
> Right now, if I have more than one <container> with the same @type in the
> LAST c0#, e.g.:
>
>
>
> <container type=�Folder�>
>
> <container type=�Folder�>
>
>
>
> it interprets them as two different types, so the number of possible
> container types is incorrect, leading to surplus columns in the table.� Now,
> I tried changing it to use preceding rather than following, like so:
>
>
>
> <xsl:variable name="uniqueTypes"
> select="ead/archdesc/dsc/descendant::*/container[not(@type=preceding::*/container/@type)]/@type"
> />
>
>
>
> And sure enough, in that case if I have more than one <container> with the
> same @type in the FIRST c0#, it show the same behavior: it interprets them
> as two different types, not as the same type.
>
>
>
> So I�m guessing that the <xsl:variable select string does not look at
> sibling <container>s in the same <did>, it only looks at containers
> above/below the current node?� That would explain why if I use
> following::*/container/@type , it gets confused over containers in the LAST
> c0# (because there are no following containers to compare it to) and why if
> I use preceding::*/container/@type it gets confused over containers in the
> FIRST c0# (because there are no preceding containers to compare it to.
>
>
>
> So, options: Make it look at siblings as well? Exclude the last c0# from
> consideration?� Something else?
>
>
>
> There may just not be an easy fix for this without tearing a lot more of the
> code apart...
>
>
>
> Michele



-- 
Joyce Chapman
Triangle Research Libraries Network
CB# 3926, Wilson Special Collections Library
Chapel Hill, NC 27514-8890
Phone: (919) 962-1345
Email:�[log in to unmask]
Website: www.trln.org/ccc