|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: ancestor axis order
At 2004-05-04 11:34 +0100, David.Pawson@xxxxxxxxxxx wrote:
Given XML such as ... I need to determine, for each <ref/> child, whether there is a <choice/> ancestor prior to the <define/> Ancestor. By "prior" I'm assuming that you need to know if you have a <choice> ancestor that has a <define> ancestor. for the example above, references should be 'no' and scope should be 'yes' Not sure what you mean by that. But, below is the use of the test: <xsl:when test="ancestor::choice/ancestor::define"> I hope this helps. ......................... Ken T:\ftemp>type david.xml
<define name="report">
<element>
<name ns="">report</name>
<group>
<group> <group>
<group>
<group>
<group>
<group>
<ref name="issues"/>
<ref name="vision"/>
</group>
<ref name="goals"/>
</group>
<ref name="scope"/>
</group>
<ref name="tasks"/>
</group>
<ref name="assessment"/>
</group> <choice>
<empty/>
<ref name="references"/>
</choice>
</group>
<ref name="owner"/>
</group>
</element>
</define>T:\ftemp>type david.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"><xsl:output indent="yes"/> <xsl:template match="/">
<xsl:for-each select=".//ref">
<xsl:element name="{@name}">
<xsl:choose>
<xsl:when test="ancestor::choice/ancestor::define">
<xsl:attribute name="required">no</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="required">yes</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:for-each>
</xsl:template></xsl:stylesheet> T:\ftemp>saxon david.xml david.xsl <?xml version="1.0" encoding="utf-8"?> <issues required="yes"/> <vision required="yes"/> <goals required="yes"/> <scope required="yes"/> <tasks required="yes"/> <assessment required="yes"/> <references required="no"/> <owner required="yes"/> T:\ftemp>
Hong Kong May 17-21; Bremen Germany May 24-28; Helsinki June 14-18 World-wide on-site corporate, govt. & user group XML/XSL training. G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
|
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








