[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Testing for parent/parent node or ancestor node

Subject: RE: Testing for parent/parent node or ancestor node
From: Scott Trenda <Scott.Trenda@xxxxxxxx>
Date: Fri, 30 Dec 2011 09:06:27 -0500
RE:  Testing for parent/parent node or ancestor node
Vincenzo,

You have a bit of a dilemma here if you're looking for the nearest ancestor that's either a Field, AutoEnter, or Validation, because you have AutoEnter and Validation elements that are children of Field elements. For a <Chunk> within a <Validation> within a <Field>, both ancestor::Validation and ancestor::Field are going to return nodes. So I don't think that's going to work like you want it to. You might want to consider using a template:

<xsl:template match="@* | node()" mode="get-parent-type-id">
	<xsl:apply-templates select="parent::*" mode="get-parent-type-id" />
</xsl:template>
<xsl:template match="Field"      mode="get-parent-type-id">53</xsl:template>
<xsl:template match="AutoEnter"  mode="get-parent-type-id">54</xsl:template>
<xsl:template match="Validation" mode="get-parent-type-id">55</xsl:template>
<!-- repeat as needed for other type IDs -->

...

	<xsl:variable name="from">
		<xsl:apply-templates select=".." mode="get-parent-type-id" />
	</xsl:variable>

Easy enough?

~ Scott

-----Original Message-----
From: Vincenzo Menanno [mailto:enzo13@xxxxxxx] 
Sent: Friday, December 30, 2011 8:43 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  Testing for parent/parent node or ancestor node

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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.