|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] 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:
<?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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








