First, I'd like to thank Ken Hollman for all the help he has given me.
He has saved this list much wasted bandwidth in answering my questions.
Here is a problem I am having that I think may be a grouping problem.
Imagine I have nested lists of items within a document, something like this:
<section name="first">
<nestlist name="level_1">
<item name="apple"/>
<item name="orange"/>
<item name="truck"/>
<item name="foo"/>
<nestlist name="level_2">
<item name="orange"/>
<item name="bar"/>
<item name="truck"/>
<nestlist name="level_3">
<item name="orange"/>
<item name="foo"/>
<item name="fnord"/>
<item name="truck"/>
<nestlist name="level_4">
<item name="foobar"/>
<item name="apple"/>
<item name="bar"/>
</nestlist>
</nestlist>
</nestlist>
</nestlist>
</section>
I would like to be able to select the first instance of every item in
the above with a specific name attribute, without having prior knowledge
of what that name might be. For example, I would like to be able to
create a select statement that would process item elements along these
lines:
- apple orange truck and foo in the level_1 nestlist
- bar in the level_2 nestlist
- fnord in level_3
- foobar in level_4
I have very large lists like this, and need to perform operations on the
first occurance of a unique name.
I have been attempting it with something like:
<xsl:for-each select="section">
<xsl:variable name="sectname" select="$name"/>
<xsl:for-each select="//nestlist/item">
<xsl:variable name="name" select="@name"/>
<xsl:for-each select="(/section//nestlist/item[(_at_)name=$name])[1]">
<!--Do something here-->
</xsl:for-each>
+</xsl:for-each>
</xsl:for-each>
But, it seems, this is not valid. How would I go about this?
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list