[xsl] Testing for parent/parent node or ancestor node

Subject: [xsl] Testing for parent/parent node or ancestor node
From: Vincenzo Menanno <enzo13@xxxxxxx>
Date: Fri, 30 Dec 2011 06:42:55 -0800
Here is the code I am using

As mentioned below I can't seem to figure out how to know what sibling that the chunk node is in. So far I have tried 2 different approaches but neither work.

     <xsl:variable name="from">
        <xsl:choose>
           <xsl:when test="../parent=Field">53</xsl:when>
           <xsl:when test="../parent=AutoEnter">54</xsl:when>
           <xsl:when test="../parent=Validation">55</xsl:when>
        </xsl:choose>
     </xsl:variable>

Thanks

Vince

--------------------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
   <xsl:output encoding="UTF-8" indent="yes" method="xml" version="1.0"/>
   <xsl:template match="/">
       <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult";>
           <ERRORCODE>0</ERRORCODE>
          <PRODUCT BUILD="04-13-2011" NAME="FileMaker Pro" VERSION="11.0v1"/>
           <DATABASE DATEFORMAT="M/d/yyyy" LAYOUT="" NAME="" RECORDS="" TIMEFORMAT="h:mm:ss a"/>
           <METADATA>
              <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FROM" TYPE="NUMBER"/>         <!-- Field Calculation Calculation, AutoEnter, Validation-->
           </METADATA>
           <RESULTSET>
               <xsl:variable name="field_calculation" select="/FMPReport/File[1]/BaseTableCatalog[1]//Chunk"/>               
               <xsl:attribute name="FOUND">
                   <xsl:value-of select="count($field_calculation)"/>
               </xsl:attribute>
               <xsl:apply-templates select="$field_calculation"/>
           </RESULTSET>
       </FMPXMLRESULT>
   </xsl:template>

   <xsl:template match="Chunk" xmlns="http://www.filemaker.com/fmpxmlresult";>

      <xsl:variable name="from">
         <xsl:choose>
            <xsl:when test="../parent=Field">53</xsl:when>
            <xsl:when test="../parent=AutoEnter">54</xsl:when>
            <xsl:when test="../parent=Validation">55</xsl:when>
         </xsl:choose>
      </xsl:variable>

       <xsl:element name="ROW">
           <xsl:attribute name="MODID">0</xsl:attribute>
           <xsl:attribute name="RECORDID">1</xsl:attribute>
          <COL>
             <DATA><xsl:value-of select="$from"/></DATA>
          </COL>
       </xsl:element>
   </xsl:template>
</xsl:stylesheet>
--------------------------------
<?xml version="1.0" encoding="UTF-16"?>
<FMPReport link="Summary.xml" creationTime="5:16:32 PM" creationDate="12/28/2011" type="Report" version="11.0v1">
  <File name="TEST" path="/Users/enzo13/Desktop/process/CMS/">
     <BaseTableCatalog>
        <BaseTable id="129" records="1" name="Test">
           <FieldCatalog>
              <Field id="1" dataType="Text" fieldType="Normal" name="name">
                 <Comment/>
                 <AutoEnter allowEditing="True" constant="False" furigana="False" lookup="False" calculation="False">
                    <ConstantData/>
                 </AutoEnter>
                 <Validation message="False" maxLength="False" valuelist="False" calculation="False" alwaysValidateCalculation="False" type="OnlyDuringDataEntry">
                    <NotEmpty value="False"/>
                    <Unique value="False"/>
                    <Existing value="False"/>
                    <StrictValidation value="False"/>
                 </Validation>
                 <Storage autoIndex="True" index="None" indexLanguage="English" global="False" maxRepetition="1"/>
              </Field>
              <Field id="2" dataType="Number" fieldType="Calculated" name="sfksjfhd">
                 <Calculation table="Test"><![CDATA[Left ( name; 3 ) & "sdkfhskdfhsdf" & sdafsadf & Asin ( ZARK::boart ) & sdafsadf Copy2]]></Calculation>
                 <DisplayCalculation>
                    <Chunk type="FunctionRef">Left</Chunk>
                    <Chunk type="NoRef"> ( </Chunk>
                    <Chunk type="FieldRef">
                       <Field table="Test" id="1" name="name"/>
                    </Chunk>
                    <Chunk type="NoRef">; 3 ) &amp; &quot;sdkfhskdfhsdf&quot; &amp; </Chunk>
                    <Chunk type="CustomFunctionRef">sdafsadf</Chunk>
                    <Chunk type="NoRef"> &amp; </Chunk>
                    <Chunk type="FunctionRef">Asin</Chunk>
                    <Chunk type="NoRef"> ( </Chunk>
                    <Chunk type="FieldRef">
                       <Field table="ZARK" id="1" name="boart"/>
                    </Chunk>
                    <Chunk type="NoRef"> ) &amp; </Chunk>
                    <Chunk type="CustomFunctionRef">sdafsadf Copy2</Chunk>
                 </DisplayCalculation>
                 <Comment/>
                 <AutoEnter alwaysEvaluate="False"/>
                 <Storage storeCalculationResults="False" indexLanguage="English" global="False" maxRepetition="1"/>
              </Field>
              <Field id="3" dataType="Text" fieldType="Normal" name="sfkjsdfklj">
                 <Comment/>
                 <AutoEnter allowEditing="True" overwriteExistingValue="False" alwaysEvaluate="False" constant="False" furigana="False" lookup="False" calculation="True">
                    <ConstantData/>
                    <Calculation table="Test"><![CDATA[Asin ( sfksjfhd )]]></Calculation>
                    <DisplayCalculation>
                       <Chunk type="FunctionRef">Asin</Chunk>
                       <Chunk type="NoRef"> ( </Chunk>
                       <Chunk type="FieldRef">
                          <Field table="Test" id="2" name="sfksjfhd"/>
                       </Chunk>
                       <Chunk type="NoRef"> )</Chunk>
                    </DisplayCalculation>
                 </AutoEnter>
                 <Validation message="False" maxLength="False" valuelist="False" calculation="False" alwaysValidateCalculation="False" type="OnlyDuringDataEntry">
                    <NotEmpty value="False"/>
                    <Unique value="False"/>
                    <Existing value="False"/>
                    <StrictValidation value="False"/>
                 </Validation>
                 <Storage autoIndex="True" index="None" indexLanguage="English" global="False" maxRepetition="1"/>
              </Field>
              <Field id="4" dataType="Text" fieldType="Normal" name="sfdkjhdsfsdf">
                 <Comment/>
                 <AutoEnter allowEditing="True" constant="False" furigana="False" lookup="False" calculation="False">
                    <ConstantData/>
                 </AutoEnter>
                 <Validation message="False" maxLength="False" valuelist="False" calculation="True" alwaysValidateCalculation="False" type="OnlyDuringDataEntry">
                    <NotEmpty value="False"/>
                    <Unique value="False"/>
                    <Existing value="False"/>
                    <Calculation table="Test"><![CDATA[Acos ( sfksjfhd )]]></Calculation>
                    <DisplayCalculation>
                       <Chunk type="FunctionRef">Acos</Chunk>
                       <Chunk type="NoRef"> ( </Chunk>
                       <Chunk type="FieldRef">
                          <Field table="Test" id="2" name="sfksjfhd"/>
                       </Chunk>
                       <Chunk type="NoRef"> )</Chunk>
                    </DisplayCalculation>
                    <StrictValidation value="False"/>
                 </Validation>
                 <Storage autoIndex="True" index="None" indexLanguage="English" global="False" maxRepetition="1"/>
              </Field>
           </FieldCatalog>
        </BaseTable>
     </BaseTableCatalog>
  </File>
</FMPReport>
--------------------------------

On Dec 30, 2011, at 6:16 AM, Martin Honnen wrote:

> Hi,
> 
> Vincenzo Menanno wrote:
>> Martin,
>> 
>>> From your email address looks like you are in Germany - I am also in Germany at this time visiting family. Dresden.
> 
> I am in Germany but nowhere near Dresden :)
> 
>> I am a little hesitant to send files to the list.
>> 
>> Do you mind if I send you the files instead. If you want to charge me for this let me know.
> 
> No, let's keep that on the list, for others to participate and help.
> 
> Requests for minimal samples allowing us to reproduce the problem are also meant as a hint for you to step back and try to isolate the problem, perhaps finding the current flaw in your code yourself that way, or if not to at least arrive at something others can look through quickly.

Current Thread