RE: [xsl] Processing IDREFS attributes

Subject: RE: [xsl] Processing IDREFS attributes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 1 Nov 2005 23:03:58 -0000
> The XSLT 2.0 tokenize function is much less verbose:
> 
> <xsl:for-each select="tokenize(@references, ' ')">
>   <!-- process each id here; . gets the id string -->
> </xsl:for-each>

Actually, in 2.0 if it's declared in the schema as an xs:IDREFS you don't
even need to tokenize it by hand, you can just do

> <xsl:for-each select="data(@references)">
>   <!-- process each id here; . gets the id string -->
> </xsl:for-each>

And in fact, in a schema-aware stylesheet, tokenize() won't work, because it
requires a single string rather than a sequence of strings. 

But it's not actually clear to me from the problem description what you want
to do with the ID values after pulling them apart.

Michael Kay
http://www.saxonica.com/


> 
> I've got a few places where I have an attribute of type IDREFS and a 
> sequence of ID values like references="Location Party 
> Organization". I had 
> 
> thought a simple for-each loop would pull these apart with the id() 
> function, in something like this:
> 
> <xsl:for-each select="id(@references)">
>                  <xsl:value-of select="."/>
> </xsl:for-each>
> 
> But it doesn't work. What I get is the content of @references 
> with the 
> above.
> 
> The only other solution I have thought about is creating a 
> template and 
> recursively pulling apart the string. This should work, but I 
> would think 
> there is a simpler way to make this work. Is there a solution 
> I missed?
> 
> ..dan
> --------------------------------------------------------------
> -------------
> Danny Vint
> 
> Specializing in Panoramic Images of California and the West
> http://www.dvint.com
> 
> voice: 510-522-4703
> 
> When H.H. Bennett was asked why he preferred to be out
> shooting landscapes rather than spending time in his portrait studio:
> 
> "It is easier to pose nature and less trouble to please."
> 
> http://www.portalwisconsin.org/bennett_feature.cfm

Current Thread