[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Inserting a parent node.
Subject: RE: [xsl] Inserting a parent node. From: "bryan" <bry@xxxxxxxxxx> Date: Mon, 20 May 2002 13:32:35 +0200 |
Well I think there's probably more going on here than I first can see, but the infinite loop comes in when you say parent::node(), since member is a child of group when you match member and have an apply-templates pointing at parent::node() (group which has an apply-templates selecting member) there is going to be a infinite recursive loop, unless of course you had some parameter you could update with each apply-templates that when it reached a certain value stopped applying-templates. Morten wrote: 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 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Inserting a parent node., Morten Primdahl | Thread | [xsl] creating list from structured, David Santamauro |
[xsl] removing nesting in data stru, Andrew Welch | Date | RE: [xsl] removing nesting in data , Andrew Welch |
Month |