Announcement

Collapse
No announcement yet.

XSL für InDesign-Import

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XSL für InDesign-Import

    Hallo

    Ich habe eine Filemaker-Pro-Datei, die ich mittels einem XSL in ein XML transformieren möchte. Das XML wird anschliessend ins InDesign importiert. Dabei ist folgendes Problem aufgetaucht:


    Das generierte XML des Filemaker-Pro sieht so aus:

    <?xml version="1.0" encoding="UTF-8" ?>
    <FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult"><ERRORCODE>0</ERRORCODE>
    <DATABASE>filename.fp7</DATABASE>
    <LAYOUT></LAYOUT>

    <ROW MODID="0" RECORDID="1">
    <field1>data1</field1>
    <field2>data2</field2>
    <field3>data3</field3>
    </ROW>

    </FMPDSORESULT>


    Für das InDesign benötige ich folgendes XML:
    <root>

    <institutionen>
    <field1>data1</field1>
    <field2>data2</field2>
    <field3>data3</field3>
    </institutionen>

    </root>

    Mein aktuelles XSL:
    <?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">
    <xslutput method="xml" encoding="UTF-8" indent="yes"/>
    <xsl:template match="fmp:FMPXMLRESULT">
    <root>
    <xsl:for-each select="fmp:RESULTSET/fmp:ROW">
    <institutionen>
    <xsl:for-each select="fmp:COL">
    <xsl:element name="fmpATA">
    <xsl:if test="fmpATA!=''">
    <xsl:apply-templates select="fmpATA"/>
    </xsl:if>
    </xsl:element>
    </xsl:for-each>
    </institutionen>
    </xsl:for-each>
    </root>
    </xsl:template>
    </xsl:stylesheet>

    Leider kann ich die ROW-Zeile nicht mit <institutionen> ersetzen.
    Kann mir jemand sagen, was am aktuellen XSL falsch ist?

    Herzlichen Dank
    M. Müller

  • #2
    Das XSLT-Stylesheet passt überhaupt nicht zum XML-Dokument, in XML hast du den Namensraum http://www.filemaker.com/fmpdsoresult, im Stylesheet einen anderen (http://www.filemaker.com/fmpxmlresult), und die Elementnamen stimmen auch nicht, weder xsl:for-each select="fmp:RESULTSET findet sich noch xsl:for-each select="fmp:COL"

    Comment


    • #3
      Originally posted by Martin Honnen View Post
      Das XSLT-Stylesheet passt überhaupt nicht zum XML-Dokument, in XML hast du den Namensraum http://www.filemaker.com/fmpdsoresult, im Stylesheet einen anderen (http://www.filemaker.com/fmpxmlresult), und die Elementnamen stimmen auch nicht, weder xsl:for-each select="fmp:RESULTSET findet sich noch xsl:for-each select="fmp:COL"

      ok, ich habe nun die namensräume angepasst und die elementnamen entfernt:


      <?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/fmpdsoresult">
      <xslutput method="xml" encoding="UTF-8" indent="yes"/>
      <xsl:template match="fmp:FMPDSORESULT">
      <Root>
      <xsl:for-each select="fmp:ROW">
      <institutionen>
      <xsl:for-each select="fmpATA">
      <xsl:element name="fmpATA">
      <xsl:if test="fmpATA!=''">
      <xsl:apply-templates select="fmpATA"/>
      </xsl:if>
      </xsl:element>
      </xsl:for-each>
      </institutionen>
      </xsl:for-each>
      </Root>
      </xsl:template>
      </xsl:stylesheet>


      <Root> und <institutionen> erscheinen beim Import ins InDesign, doch die datenfelder innerhalb <institutionen> werden noch nicht übernommen.

      Comment

      Working...
      X