This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Inserting a parent node.


Chuck White wrote:
> It sounds like you want access to other nodes in the tree brought in via the
> document function, which of course is possible. Check out the FAQ for this
> at:
> 
> http://www.dpawson.co.uk/xsl/sect2/N2602.html

Seemed from the FAQ that the union operator was what I needed, but when
I apply that, I get an infinite loop.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<!-- Output parameters -->
<xsl:output encoding="iso-8859-1"/>
<xsl:output omit-xml-declaration="yes"/>
<xsl:output method="text"/>

<xsl:template match="/">
   <xsl:apply-templates select="group"/>
</xsl:template>

<xsl:template match="group">
   <xsl:apply-templates select="member|person"/>
</xsl:template>

<!-- I expected the select="parent::node() | $content/*"
      to return what corresponds to
      <group><person>Bub</person></group> so the person
      match would have parent::group resolve to true -->
<xsl:template match="member">
   <xsl:variable name="content" select="document(@url)"/>
   <xsl:text> Inifinite loop </xsl:text>
   <xsl:apply-templates select="parent::node() | $content/*"/>
</xsl:template>

<xsl:template match="person">
   <xsl:choose>
     <xsl:when test="parent::group">
       <xsl:text>Yep</xsl:text>
     </xsl:when>
     <xsl:otherwise>
       <xsl:text>Bummer</xsl:text>
     </xsl:otherwise>
   </xsl:choose>
</xsl:template>

</xsl:stylesheet>

input.xml
<group>
   <member url="other.xml"/>
</group>

other.xml
<person>Bub</person>

I think I can solve this with some parameters here and there, eg.
by passing the parent node of the member element as parameter
to the subsequent <apply-templates select="$content/*"/>. Just
wondering if that is the appropriate way.

Morten



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]