Skip to content
View in the app

A better way to browse. Learn more.

FMForums.com

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Exporting xml with stylesheet

Featured Replies

  • Newbies

Hi all and thx previously 4 your answers and sorry 4 my bad english...

i have a problem with exporting XML with FMP6.

I had create an XSLT stylesheet that i attached to this post:

 

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fmp="http://www.filemaker.com/fmpxmlresult" exclude-result-prefixes="fmp">

<xsl:variable name="righe" select="count(/FMPDSORESULT/ROW)" />

<xsl:template match="FMPDSORESULT">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

<link href="css/print.css" rel="stylesheet" type="text/css" media="print"/>

<link href="css/display.css" rel="stylesheet" type="text/css" media="screen"/>

<title>Aramini strumenti musicali</title>

<script>

<![CDATA[function txtA(obj){

var obj = document.getElementById(obj);

var arSp = obj.value.split(' ');

var c = arSp.length;

obj.style.pixelHeight = (obj.value.length+c)/25;

//alert©;

//alert(obj.style.pixelHeight);

//if((obj.style.pixelHeight*10) < 100) obj.style.pixelHeight = 100; else obj.style.pixelHeight = obj.style.pixelHeight*11;

if((obj.style.pixelHeight*10) < 100) obj.style.pixelHeight = obj.style.pixelHeight*10; else obj.style.pixelHeight = obj.style.pixelHeight*10;

//alert(obj.style.pixelHeight);

}]]>

</script>

</head>

<body>

<script language="javascript" type="text/javascript" src="JS/wz_dragdrop.js"></script>

<table cellpadding="0" cellspacing="0" border="0">

<thead>

<tr>

<td id="header">

<div id="logo_aramini">

<img src="img/logo_aramini.gif" width="209" height="65"/>

</div>

<div id="titolo">

Listino al pubblico ivato<br/>

<input id="data" type="text" value="inserisci la data" onClick="this.value=''"/>

</div>

</td>

</tr>

</thead>

<tbody>

<tr>

<td id="main_td">

<div id="content">

<xsl:apply-templates select="ROW">

<xsl:sort select="Marca_Logo" order="ascending"/>

</xsl:apply-templates>

</div>

<xsl:call-template name="content">

<xsl:with-param name="r" select="count(ROW)"/>

<xsl:with-param name="d" select="ceiling(count(ROW) div 4)"/>

<xsl:with-param name="m" select="count(ROW) mod 4"/>

</xsl:call-template>

</td>

</tr>

</tbody>

</table>

<script language="javascript" type="text/javascript">

<xsl:text>SET_DHTML(CURSOR_HAND, RESIZABLE, NO_ALT, SCROLL,TRANSPARENT</xsl:text>

<xsl:call-template name="js">

<xsl:with-param name="counter">

<xsl:value-of select="$righe"/>

</xsl:with-param>

</xsl:call-template>

<xsl:text>);</xsl:text>

</script>

</body>

</html>

</xsl:template>

<xsl:template match="ROW">

<xsl:variable name="inc">

<xsl:number count="ROW"/>

</xsl:variable>

<xsl:variable name="img_path">

<xsl:value-of select="Id_foto" />

</xsl:variable>

<xsl:variable name="logo_path">

<xsl:value-of select="Id_Logo" />

</xsl:variable>

<xsl:variable name="code">

<xsl:value-of select="Codice" />

</xsl:variable>

<xsl:variable name="prz">

<xsl:value-of select="PrezzoPubCI" />

</xsl:variable>

<xsl:variable name="marca">

<xsl:value-of select="Marca_Logo" />

</xsl:variable>

<xsl:variable name="serie">

<xsl:value-of select="Serie" />

</xsl:variable>

<div id="div_{$inc}" class="main" style="z-index:{$inc}">

<div id="codice" class="codice">

<input type="text" value="{$code}" class="bg_black"/>

</div>

<div id="articolo_{$inc}" class="articolo">

<textarea class="art" id="art_{$inc}" onBlur="txtA('art_{$inc}');"><xsl:value-of select="Articolo" /></textarea>

</div>

<div id="descrizione_{$inc}" class="descrizione">

<textarea class="desc" id="desc_{$inc}" onBlur="txtA('desc_{$inc}');"><xsl:value-of select="Descrizione_estesa" /></textarea>

</div>

<div id="marca_{$inc}" class="marca">

<input type="text" value="{$marca}"/>

</div>

<div id="famiglia_{$inc}" class="famiglia">

<textarea class="txt_fam" id="fam_{$inc}" onBlur="txtA('fam_{$inc}');"><xsl:value-of select="Famiglia" /></textarea>

</div>

<div id="sott_fam_{$inc}" class="sottofamiglia">

<textarea class="txt_sott_fam" id="sot_{$inc}" onBlur="txtA('sot_{$inc}');"><xsl:value-of select="Sottofamiglia" /></textarea>

</div>

<div id="serie_{$inc}" class="serie">

<input type="text" value="{$serie}"/>

</div>

<div id="prz_pub_{$inc}" class="prz_pub">

<input type="text" value="

Right at the top there is a mismatch of the FileMaker xml format.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:fmp="http://www.filemaker.com/fmpxmlresult" exclude-result-prefixes="fmp">

<!-- you reference fmpxmlresult -->

<xsl:variable name="righe" select="count(/FMPDSORESULT/ROW)" />

<!-- you use FMPDSORESULT, different; use one or the other, not both -->

Also, you define the prefix "fmp" in the FileMaker namespace, but you don't use it. Should be:

<xsl:variable name="righe" select="count(/fmp:FMPDSORESULT/fmp:ROW)" />

All FileMaker objects should use it. You've excluded it from the results, so it won't show.

Otherwise I don't know whether it works. The xsl is properly formatted, as xsl. That doesn't mean it works however. The "xml" you posted is just the data, not really the xml. You could export it as xml (1 record will do), with no stylesheet selected. Then we'd have something to work with.

You'd do better to have an dedicated xml/xsl editor, which would let you load the raw FileMaker xml export file (above) and the xsl file, then show you the result, with decent error messages. It's pretty hard (and tedious) to get it all right by exporting from FileMaker over and over.

I don't know about PC editors, but there are a few. xmlSpy

There's also Beverly Voth's book:

FileMaker Pro 6 Developer's Guide to XML/XSL

http://www.amazon.com/exec/obidos/tg/det...ks&n=507846

  • Author
  • Newbies

Thx a lot Fenton, the XML file is like the follow:

<?xml version="1.0" encoding="UTF-8" ?><FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult"><ERRORCODE>0</ERRORCODE><DATABASE>Aramini.fp5</DATABASE><LAYOUT>Scheda</LAYOUT><ROW MODID="2" RECORDID="41607"><Codice>CMX-16A</Codice><Articolo>- 16 Canali (8 canali mono bilanciati + 8 canali configurati in 4 stereo) - Master Left e Right + 2 Subgruppi - 2 Aux Send/Return (stereo) - Controlli di Gain, Pan-pot, - Mandata e ritorno effetti.</Articolo><Descrizione_estesa></Descrizione_estesa><PrezzoPubCI>641,00</PrezzoPubCI><Marca_Logo>NADY</Marca_Logo><Famiglia>AUDIO</Famiglia><Sottofamiglia>Mixer</Sottofamiglia><Serie>CMX</Serie><Id_foto>../image/Nady - CMX16A.jpg</Id_foto><Id_Logo>../logo/Logo_Nady.jpg</Id_Logo></ROW></FMPDSORESULT>

The XSL i'd write works correctly only if I link it in the XML file directly, not with the FMP export.

It happen because i'd mismatch the declaration? Or 4 any other reason?

Thx a lot Fenton.

  • Author
  • Newbies

I solved my problems in exportation. The wrong initial declaration didn't allow export to FMP correctly.

Thx a lot Fenton

Create an account or sign in to comment

Important Information

By using this site, you agree to our Terms of Use.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.