Författare Ämne: XSLT  (läst 1800 gånger)

0 medlemmar och 1 gäst tittar på detta ämne.

Utloggad jelli

  • Nykomling
  • Antal inlägg: 6
    • Visa profil
XSLT
« skrivet: 14 februari, 2016, 16:05 »
lyckas inte få till XSLT-filen för denna XML.
några tips ?

XML-fil:

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

<event-table>
<event-list>
<batch>
<event>
<timestamp>2016-02-07 16:38:11</timestamp>
<description>Operatör anders inloggad från PC 192.168.1.102</description>
<operator>anders</operator>
</event>
</batch>
<batch>
<event>
<timestamp>2016-02-07 16:30:14</timestamp>
<description>Entré Dörr motorlås låst</description>
<operator></operator>
</event>
</batch>

XSLT:

<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/event-table">
       <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
         <METADATA>
            <FIELD EMTYOK="YES" MAXREPEAT="1" NAME="timestamp" TYPE="NUMBER"/>
         </METADATA>
         <RESULTSET>
            <xsl:for-each select="event">
               <ROW>
                  <COL><DATA><xsl:value-of select="timestamp"/></DATA></COL>
               </ROW>
            </xsl:for-each>
         </RESULTSET>
      </FMPXMLRESULT>
   </xsl:template>
</xsl:stylesheet>


Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 648
    • Visa profil
    • CamelCase data - FileMaker developers
SV: XSLT
« Svar #1 skrivet: 15 februari, 2016, 12:09 »
Din import-fil är inte giltig xml då sluttaggar saknar för event-table och event-list. Jag antar att de är med i originaldatakällan.

Något åt det här håller ska funka för att importera timestamp som ett textfält:

Kodstycke: [Välj]
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<METADATA>
<FIELD NAME="Timestamp" TYPE="TEXT"/>
</METADATA>
<RESULTSET>
<xsl:for-each select="event-table/event-list/batch/event">
<ROW>
<COL>
<DATA><xsl:value-of select="timestamp"/></DATA>
</COL>
</ROW>
</xsl:for-each>
</RESULTSET>
</FMPXMLRESULT>
</xsl:template>
</xsl:stylesheet>
FileMaker 16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member

Utloggad jelli

  • Nykomling
  • Antal inlägg: 6
    • Visa profil
SV: XSLT
« Svar #2 skrivet: 19 februari, 2016, 01:16 »
Strålande ! tack för hjälpen, listade ut ur de övriga fälten skulle med, så tack för hjälpen. har ytterligare en xml som jag skulle behöva hjälp med.......

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

<events>
<batch name="controller.intrusionarea.siaLog.batch">
<event id="106556" name="controller.intrusionarea.siaLog" type="controller" timestamp="1454606644000">
<argument value="LCU9101" type="controller" id="1"/>
<argument value="  ti19:23/BR1002 -INBROTT  " type="string"/>
<argument value="Larm" type="galaxy_controller" id="1"/>
</event>
</batch>
<batch name="controller.intrusionarea.siaLog.batch">
<event id="106557" name="controller.intrusionarea.siaLog" type="controller" timestamp="1454606662000">
<argument value="LCU9101" type="controller" id="1"/>
<argument value="  ti19:23/BA1002  INBROTT  " type="string"/>
<argument value="Larm" type="galaxy_controller" id="1"/>
</event>
</batch>
<batch name="controller.dac.digitalOutputChanged.batch">
<event id="106558" name="controller.dac.digitalOutputChanged" type="controller" timestamp="1454606665000" domain="1">
<argument value="LCU9101" type="controller" id="1"/>
<argument value="Entré Dörr" type="dac" id="8" externalId="ID:8_20141026_141836">
<![CDATA[
address=1
]]>
</argument>

o.s.v

</event>
</batch>
</events>

Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 648
    • Visa profil
    • CamelCase data - FileMaker developers
SV: XSLT
« Svar #3 skrivet: 19 februari, 2016, 11:52 »
Det är ärligt talat nog bättre om du testar dig fram, så kommer du kunna lösa all möjliga olika xml-importer själv i framtiden. Det är inte mycket du behöver ändra, och de lite trial-and-error får du det säkert snart att fungera.

Ett tips - för att få ut attributen (ex.vis. "type" från <event id="106557" name="controller.intrusionarea.siaLog" type="controller" timestamp="1454606662000">) får du använda @type.

En av många bra resurser för att lära sig mer är http://www.w3schools.com/xml/ - kolla särskilt in sektionen om XPath.
FileMaker 16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member

Utloggad jelli

  • Nykomling
  • Antal inlägg: 6
    • Visa profil
SV: XSLT
« Svar #4 skrivet: 21 februari, 2016, 17:03 »
ärligt talat så har du nog rätt  ;) blev lite lat där..... men tack för hjälpen på vägen, bara att grotta ner sig.