Skip to content

Instantly share code, notes, and snippets.

@TyrfingMjolnir
Last active July 1, 2020 10:59
Show Gist options
  • Save TyrfingMjolnir/98bfc677669e91df1dc55d0f24d62747 to your computer and use it in GitHub Desktop.
Save TyrfingMjolnir/98bfc677669e91df1dc55d0f24d62747 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="utf-8"?>
<datavalues>
<relaystate>1</relaystate>
<inputstate>0</inputstate>
<rebootstate>0</rebootstate>
<totalreboots>0</totalreboots>
</datavalues>

Even though I show xsltproc approach here the 2 involved files could just as easily be the XSLT and data source in FileMaker's XML import.

Note you can use the following link for the XSLT in FileMaker's import: https://gist.githubusercontent.com/TyrfingMjolnir/98bfc677669e91df1dc55d0f24d62747/raw/19c387c7990ed9ad34f7147eae6ce6a73ba1a8aa/datavalues2fmpxmlresult.xslt

$ xsltproc datavalues2fmpxmlresult.xslt 106624.xml
<?xml version="1.0" encoding="utf-8"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
  <ERRORCODE>0</ERRORCODE>
  <PRODUCT BUILD="" NAME="" VERSION=""/>
  <DATABASE DATEFORMAT="M/d/yyyy" LAYOUT="" NAME="" RECORDS="1" TIMEFORMAT="h:mm:ss a"/>
  <METADATA>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="relaystate" TYPE="NUMBER"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="inputstate" TYPE="NUMBER"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="rebootstate" TYPE="NUMBER"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="totalreboots" TYPE="NUMBER"/>
  </METADATA>
  <RESULTSET FOUND="1">
    <ROW MODID="0" RECORDID="1">
      <COL>
        <DATA>1</DATA>
      </COL>
      <COL>
        <DATA>0</DATA>
      </COL>
      <COL>
        <DATA>0</DATA>
      </COL>
      <COL>
        <DATA>0</DATA>
      </COL>
    </ROW>
  </RESULTSET>
</FMPXMLRESULT>
<?xml version="1.0" encoding="utf-8"?>
<!-- Written by ggt667 aka Gjermund Gusland Thorsen as an example for FMForums for the user madman411<https://fmforums.com/profile/84142-madman411/>
as pr this request: https://fmforums.com/topic/106624-controlling-a-web-relay-with-xml/ -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" />
<xsl:template match="/">
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="" NAME="" VERSION="" />
<DATABASE DATEFORMAT="M/d/yyyy" LAYOUT="" NAME="" RECORDS="1" TIMEFORMAT="h:mm:ss a" />
<METADATA>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="relaystate" TYPE="NUMBER" />
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="inputstate" TYPE="NUMBER" />
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="rebootstate" TYPE="NUMBER" />
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="totalreboots" TYPE="NUMBER" />
</METADATA>
<RESULTSET FOUND="{count(/datavalues)}">
<xsl:apply-templates select="/datavalues" />
</RESULTSET>
</FMPXMLRESULT>
</xsl:template>
<xsl:template match="/datavalues">
<ROW xmlns="http://www.filemaker.com/fmpxmlresult" MODID="0" RECORDID="{position()}">
<COL><DATA><xsl:value-of select="/datavalues/relaystate" /></DATA></COL>
<COL><DATA><xsl:value-of select="/datavalues/inputstate" /></DATA></COL>
<COL><DATA><xsl:value-of select="/datavalues/rebootstate" /></DATA></COL>
<COL><DATA><xsl:value-of select="/datavalues/totalreboots" /></DATA></COL>
</ROW>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="" NAME="" VERSION=""/>
<DATABASE DATEFORMAT="M/d/yyyy" LAYOUT="" NAME="" RECORDS="1" TIMEFORMAT="h:mm:ss a"/>
<METADATA>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="shipONo" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="shipONoInternal" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="shipONoER" TYPE="TEXT"/>
</METADATA>
<RESULTSET FOUND="1">
<ROW MODID="0" RECORDID="1">
<COL>
<DATA>GJE123456789-207</DATA>
</COL>
<COL>
<DATA>42a0f316-0327-4886-99a9-766fe6ffd07f</DATA>
</COL>
<COL>
<DATA>42a0f316-0327-4886-99a9-766fe6ffd07f</DATA>
</COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment