Dear Terry,
Your new problem suggests you might want to match at the level of
Items, not of Answers, since you want one listing for every Item, not
for every answer as you first had it.
It's not really complicated at all -- actually it's about as simple
as your first problem.
But to solve it, you need to understand what the processor is doing
with your templates.
I'd suggest running a stylesheet that has absolutely no templates at
all. Then introduce a template just to match something out near the
branches or leaves of the tree (the Item or Answer will do),
*without* your template matching the root (that selects your elements
from the three), and see if you can explain what is happening when
you run that.
Once you figure this out (and there's lots of helpful literature on
the topic), problems like your new one become trivially easy.
To give you another way into this mystery, here's a stylesheet that
*almost* does what you're asking for. When you can explain how this
works, you'll be in good shape:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space="Story GrammarQuiz"/>
<xsl:template match="GrammarTopic"/>
<xsl:template match="Directions"/>
<xsl:template match="Item">
<xsl:number level="any" format="1.	"/>
<xsl:apply-templates select="Answer"/>
</xsl:template>
</xsl:stylesheet>
The addition of just a single template to this will get you what
you've asked for.
But you'll need to understand why this works before it becomes
obvious what that template should do.
Then, XSLT becomes easy and fun. Without this understanding, it
remains bothersome and intractable. Nor will the XSLT Cookbook or any
"bottom-up" learning approach (copying code and modifying it) help
very much till you have this "Aha".
I gave you more hints in the last email, too.
Cheers,
Wendell
At 09:48 PM 2/24/2006, you wrote:
Thanks Wendell,
Your suggestion worked like a charm. I added some tabs and newline
characters as needed for my purposes. There is one more aspect of
this project that has me really puzzled. Suppose that some quiz
items have more than one answer. I changed item 3 of the the XML
file to represent this situation.
<Story>
<GrammarTopic>Finding Subjects</GrammarTopic>
<Directions>Underline the subject in each sentence. If the
subject is an understood you, write you.?</Directions>
<GrammarQuiz>
<Item>1. Find your seats quickly.<Answer>you</Answer></Item>
<Item>2. During open auditions there are very few empty
<Answer>seats</Answer> in the auditorium.</Item>
<Item>3. Have <Answer>you</Answer> and
<Answer>Marsha</Answer> heard the director's name?</Item>
</GrammarQuiz>
</Story>
Here is my current stylesheet.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<xsl:text> </xsl:text>
<xsl:apply-templates select="Story/GrammarTopic" />
<xsl:apply-templates select="Story/GrammarQuiz/Item/Answer"/>
</xsl:template>
<xsl:template match="Answer">
<xsl:text> </xsl:text><xsl:text>	</xsl:text>
<xsl:number level="any" format="1.	"/>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
This works great except, of course, it numbers all the answers
consecutively. The output looks like this:
Finding Subjects
1. you
2. seats
3. you
4. Marsha
What I want to do now is get both answers for item 3 ("you" and
"Marsha") together on one line like this.
Finding Subjects
1. you
2. seats
3. you, Marsha
I have a feeling that this will involve some complicated routines. I
have reviewed The XSLT Cookbook and several other resources, but I
am not even sure where to start.
Again, any help will be greatly appreciated.
Terry
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--