[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Getting variable yet most immediate parentNode
Subject: Re: [xsl] Getting variable yet most immediate parentNode From: Steve <subsume@xxxxxxxxx> Date: Fri, 28 Sep 2007 11:26:30 -0400 |
>Abel Braaksma <abel.online@xxxxxxxxx> wrote: > which means that <xsl:template match="option" mode="q">... will never be > triggered by this snippet: > > <xsl:template match="questions"> > <xsl:apply-templates mode="q" select="option" /> > <SNIP /> > </xsl:template> Yep, that's my fault. Questions do have option children. My mistake. > Steve, if you rewrite statements like that as this one above as: > > <xsl:template match="answers[option]"> > .... Ahh, yes. Wise and simple, thank you. Done. > > Wendell, considering the possible intent of Steve to wrap all output > inside one <div>, it is probably better if he does go back to using the > // syntax, but not in the way I proposed, but more like this (assuming I think we've gone awry. .//answer's doesn't make sense because, as Wendell pointed out, I want to go up the tree if there is no child <answers />. I tried his syntax, however I'm not sure how to make it choose a child answer's node before it goes looking for the closest ancestral answer node (without using those pesky case statements). > <xsl:template match="option"> > <option><xsl:value-of select="(@name | .)[1]" /> > </xsl:template> And finally, this last shortcut doesn't function. My logic is "If it has a @name, use it, otherwise just use the node's text." I'm honestly not sure how to interpret this shortcut because the "|" seems to imply union, which of course doesn't seem to fit my intentions. At any rate, this statement never spits out question <option>s with @name. I'm assuming much of the confusion over what I am attempting is my fault, and particularly my pasting a slightly incomplete source XML. Here is an actual example. <root> <section key="D" name="Nutritional status"> <questions> <option key="A" name="Does client have prescribed diet by physician?" /> <option key="C" name="Do you have a good appetite?" /> <option key="K" name="Daily fluid intake per cups?"> <answers> <option p="1">1</option> <option p="2">2</option> <option p="3">3</option> <option p="4">4</option> <option p="5">5</option> </answers> </option> <option key="J" name="Weight"> <answers> <option p="1">Underweight</option> <option p="2">Overweight</option> <option p="0">Normal</option> </answers> </option> <option key="L" name="Taking vitamin/mineral supplements?" /> </questions> <questions> <answers> <option p="1">5</option> <option p="2">1</option> <option p="3">1.5</option> <option p="4">2</option> <option p="5">3</option> <option p="6">4 or more</option> </answers> <option key="D" value="POULTRY">Servings of meat, fish, eggs, dried peas, beans and nuts</option> <option key="E" value="FRUIT">Servings of citrus fruit, juices and tomatoes</option> <option key="F" value="GREENVEG">Servings of dark green, leafy vegetables</option> <option key="G" value="VEG">Servings of other fruits, vegetables and juices</option> <option key="H" value="STARCH">Servings of bread, cerea, rice, pasta</option> <option key="I" value="DAIRY">Servings of dairy products</option> <option key="J" value="MISC">Servings of Misc. foods</option> </questions> </section> </root>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Getting variable yet most, Wendell Piez | Thread | Re: [xsl] Getting variable yet most, Wendell Piez |
Re: [xsl] Getting variable yet most, Wendell Piez | Date | Re: [xsl] Split into numbered files, Wendell Piez |
Month |