xsl-list
[Top] [All Lists]

Re: dynamic node access

2005-02-21 10:19:41


David Carlisle wrote:


Then you might need something

<xsl:template match="/">
   <Top>
       <PrimeConcept><xsl:apply-templates 
select="something"mode="top"/></PrimeConcept>
       <SubConcept><xsl:apply-templates select="something else 
"mode="somethingelse"/></SubConcept>
   </Top>
</xsl:template>

or you might not.

I wrote my code in this form initially although I didnt think it was ideal for my requirement.

By writing a <SubConcept> node in this form, the output xml file ensures that a <SubConcept> node definitely exists. However, I want the output xml file to have a <SubConcept> node only if

(i) A <TopNode> Car is found in the input xml, and
(ii) A <TopNode> Toyota is found in the input xml provided (i) is true, which is why I have an <xsl:if> clause nested within another <xsl:if> clause.

My input file is very large so Im not sure whether it makes sense to post the entire doc but a snippet of it is

-------------------
<TopNode id="10180" name="Car">
     <Child>
          <Concept name="Toyota" ref="10235"/>
      </Child>
</TopNode>
<TopNode id="10235" name="Toyota">
      <Child>
          <Concept name="Corolla" ref="10279"/>
      </Child>
</TopNode >
<TopNode id="10279" name="Corolla"/>

-------------------

Is it possible to do what I want? One way I was thinking of coming round this problem is to declare a global variable and then assign it a value locally (I know there are some issues with assignment in XSLT and Im reading them at the moment). This variable will contain a boolean value of whether 'Toyota' exists from the inner <xsl:if> clause and only call the <SubConcepts> <xsl:apply-template> if the value is 'true'. Dont know if its the best approach but that was one way I was thinking of resolving the issue.

Comments?

Thanks
Rahil

but only you know what your input looks like or what transformation you
are trying to do.



David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

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



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