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

Re: Filemaker Pro XSL Question! Help!!

Subject: Re: Filemaker Pro XSL Question! Help!!
From: Michael Müller-Hillebrand <mmh@xxxxxxxxxxxxx>
Date: Fri, 21 Jan 2011 23:46:15 +0100
Re:  Filemaker Pro XSL Question! Help!!
Hi Josh,

I have never used XSL with FileMaker Pro, but I use that program a lot. Try
this, using XSLT magic:

<!-- loop through all tracks -->
<xsl:for-each select="/xmeml/sequence/media/video/track">
<ROW MODID="" RECORDID="">
      <COL>
       <DATA>
   <!-- calculate the track number -->
        <xsl:value-of select="count(preceding-sibling::track) + 1"/>
       </DATA>
      </COL>
      <COL>
       <DATA>
   <!-- finds the clip name as child of clipitem -->
        <xsl:value-of select="clipitem/name"/>
       </DATA>
      </COL>
      <COL>
       <DATA>
       <!-- finds the in point of the source clip in frames -->
        <xsl:value-of select="clipitem/in"/>
       </DATA>
      </COL>
      <COL>
       <DATA>
       <!-- finds the out point of the clip in frames -->
        <xsl:value-of select="clipitem/out"/>
       </DATA>
      </COL>
</ROW>
</xsl:for-each>

Am 21.01.2011 um 21:20 schrieb Josh Kirschenbaum:

> Hello all - I'm new to XML / XSLT, so go easy on me!
> I am trying to get an XML file from Final Cut Pro to Filemaker Pro
> using an XSLT template.
> The original XML has a basic structure like this (simplified for this
question)
> <video>
>    <track>
>      <clipitem id="This Is The First Clip">
>            <name>The First Clip has a Name</name>
>            <in>140</in>
>            <out>240</out>
>            <...etc..>
>      </clipitem>
>      <clipitem id="And The Second Clip">
>            <name>Number Two</name>
>            <in>360</in>
>            <out>520</out>
>            <...etc..>
>      </clipitem>
>      <clipitem id="Finally The Third Clip">
>            <name>Three Is Not Company</name>
>            <in>140</in>
>            <out>240</out>
>            <...etc..>
>      </clipitem>
>    </track>
>    <track>
>      <clipitem id="First Clip on Another Track">
>            <name>Track Two's First Clip</name>
>            <in>140</in>
>            <out>240</out>
>            <...etc..>
>      </clipitem>
>      <clipitem id="Second Clip Second Track">
>            <name>Number Two Track Two</name>
>            <in>460</in>
>            <out>820</out>
>            <...etc..>
>      </clipitem>
>      <clipitem id="Second Track Third Clip">
>            <name>Three Is Not Company On This Track Either</name>
>            <in>158</in>
>            <out>655</out>
>            <...etc..>
>      </clipitem>
>    </track>
> </video>
>
> Obviously there are many other leaves inside of the <clipitem> tag.
> And there are more <track> levels as well - once again, this is just
> for illustration.
> This is FileMaker Pro's XSLT template format (once again, slimmed
> down) to pull out the three <clipitem> from the first <track> level.
> This makes sense to me - it's very straightforward.
> The issue is that I don't want to manually indicate which <track> to
> "pick" by changing track[1] to track[2]. I want to traverse the entire
> XML file - even when I don't know how many <track> occurences there
> are.
> <xsl:for-each select="/xmeml/sequence/media/video/track[1]/clipitem">
> <ROW MODID="" RECORDID="">
>       <COL>
>        <DATA>
>    <!-- finds the clip name -->
>         <xsl:value-of select="./name"/>
>        </DATA>
>       </COL>
>
>
>       <COL>
>        <DATA>
>        <!-- finds the in point of the source clip in frames -->
>         <xsl:value-of select="./in"/>
>        </DATA>
>       </COL>
>
>       <COL>
>        <DATA>
>        <!-- finds the out point of the clip in frames -->
>         <xsl:value-of select="./out"/>
>        </DATA>
>       </COL>
>
> </ROW>
> </xsl:for-each>
>
>
> I also want to add another <COL> set - one that outputs the number of
> the <track> I'm on - kind of like this:
>
>
> <COL>
> <DATA>
> <!-- finds the track number -->
> <xsl:value-of select="count(/xmeml/sequence/media/video/track)"/>
> </DATA>
> </COL>
>
> The problem is that this line of code just returns the TOTAL number of
> <track> levels - in this case it would return "2". I want it to return
> 1, then all the clipitems on that level, then 2, then the clipitems on
> that level, etc.
> This is probably something that is SUPER straightforward, but as I
> said, I'm a newbie to this stuff!!
> Thanks in advance!!!
> --
>
> -. --- -- .- - - . .-. .-- .... . .-. . -.-- --- ..- --. --- - .... .
> .-. . -.-- --- ..- .- .-. .
>
> Josh Kirschenbaum
> Visual Effects Director / Design
> www.zeroperimeter.com

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.