xsl-list
[Top] [All Lists]

Re: equivalent for 'while'

2005-02-18 08:24:02

Hi

I've managed to retrieve the grandchild of 'Pain' in the following way (not sure its the best way though):
-------------------------------------
<xsl:template match="DEFCONCEPT" mode="top">
    <xsl:if test="@name = $prime"> <!--resolves to Pain-->
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute> <xsl:element name="PrimeName"><xsl:value-of select="@name"/></xsl:element><!-- e.g. Pain--> <xsl:if test="//*[(_at_)name = $constraint]"> <!--resolves to Headache-->
           <xsl:element name="SubConcepts">
               <xsl:element name="SubConcept">
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute> <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
               </xsl:element>
           </xsl:element>
       </xsl:if>
</xsl:if> </xsl:template>
-----------------------------------

The resulting output is such

------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Top>
<PrimeConcept id="10180">
   <PrimeName>Pain</PrimeName>
   <SubConcepts>
       <SubConcept id="10180" name="Pain"/>
   </SubConcepts>
</PrimeConcept>
</Top>
------------------------------
I have two problems though. First, my <SubConcept> element tag displays 'Pain' and '10180' instead of 'Headache' and '10279'. Is that because the control still remains at the 'Pain' element?

Second, the actual output I'd like is
<PrimeConcept></PrimeConcept>
<SubConcepts>
   <SubConcept></SubConcept>
</SubConcepts>

but I'm not sure how to create a top-level node <SubConcepts> from within the <PrimeConcept> if clause.

Could someone please help  me out with this?

Thank you
Rahil

Andrew Welch wrote:

It's not immediately obvious how you arrived at your output, for example where does the SubConcept/id value of '11000' come from?



Oh the '11000' is just an id I made up for completing the XML document. However it comes from some other part of document 2 which I havent shown in the post (to avoid lengthy chunks of code).

That didn't help matters then...


--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>