xsl-list
[Top] [All Lists]

[xsl] Testing for parent node

2011-12-30 05:59:28
Hi everyone,

I am on this list but I rarely post.

               <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>

My XPATH is fixed to all Calculations within the BaseTableCatalog - like this.

/FMPReport/File[1]/BaseTableCatalog[1]//Calculation

In some cases the parent of the calculation will be "Field" (see example) in 
other cases it will be "AutoEnter" (see example) or "Validation"

I have tried a number of different things but I can't get any of them to work 
and bring me reliable results.

This returns nothing for the"$from" variable

      <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>

This returns nothing when the calculation is a child of Field but it returns 
always the 53 when the calculation is "AutoEnter" or "Validation"

      <xsl:variable name="from">
         <xsl:choose>
            <xsl:when test="local-name(../parent::*)='Field'">53</xsl:when>
            <xsl:when test="local-name(../parent::*)='AutoEnter'">54</xsl:when>
            <xsl:when test="local-name(../parent::*)='Validation'">55</xsl:when>
         </xsl:choose>
      </xsl:variable>

I know the answer is obvious and I am just missing it.

Thanks for any suggestions or help on this.

Vince

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>