如何在 FileMaker 中组合字段和数组?

How to combine fields and arrays in FileMaker?

我开发了一个 API,其中 returns 例如这个 xml:

<ApiResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>0</ErrorCode>
    <IsSuccess>true</IsSuccess>
    <Message>ok</Message>
    <Data xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d2p1:string>Standard</d2p1:string>
        <d2p1:string>50%</d2p1:string>
        <d2p1:string>Großkunden</d2p1:string>
        <d2p1:string>100%</d2p1:string>
        <d2p1:string>Basis 7,-</d2p1:string>
        <d2p1:string>Großladebonus</d2p1:string>
        <d2p1:string>Neu</d2p1:string>
        <d2p1:string>test</d2p1:string>
        <d2p1:string>Test</d2p1:string>
    </Data>
</ApiResult>

我的任务是为导入创建一个 XML 转换。到目前为止,这是我的 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="/">
    <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
      <METADATA>
        <FIELD NAME="ErrorCode" TYPE="NUMBER"/>
        <FIELD NAME="IsSuccess" TYPE="TEXT"/>
        <FIELD NAME="Message" TYPE="TEXT"/>
      </METADATA>
      <RESULTSET>
        <ROW>
          <COL>
            <DATA>
              <xsl:value-of select="ApiResult/ErrorCode"/>
            </DATA>
          </COL>
          <COL>
            <DATA>
              <xsl:value-of select="ApiResult/IsSuccess"/>
            </DATA>
          </COL>
          <COL>
            <DATA>
              <xsl:value-of select="ApiResult/Message"/>
            </DATA>
          </COL>
        </ROW>
      </RESULTSET>
    </FMPXMLRESULT>
  </xsl:template>
</xsl:stylesheet>

我无法包含 Data-string 类型的数组。我怎样才能包含它?

I am stuck at including my Data-Array of type string. How can I include it?

我不确定您要如何导入它们。 METADATA 部分中没有它们的字段,并且它们没有任何标签可以让我知道它们代表什么。

假设整个数组是一条记录,并且数组的结构是不变的,你可以这样做:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
exclude-result-prefixes="d2p1">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>

<xsl:template match="/ApiResult">
    <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
        <METADATA>
            <FIELD NAME="ErrorCode" TYPE="NUMBER"/>
            <FIELD NAME="IsSuccess" TYPE="TEXT"/>
            <FIELD NAME="Message" TYPE="TEXT"/>
            <FIELD NAME="Field1" TYPE="TEXT"/>
            <FIELD NAME="Field2" TYPE="TEXT"/>
            <FIELD NAME="Field3" TYPE="TEXT"/>
            <!-- ADD MORE FIELDS AS NEEDED  -->
        </METADATA>
        <RESULTSET>
            <ROW>
                <COL><DATA><xsl:value-of select="ErrorCode"/></DATA></COL>
                <COL><DATA><xsl:value-of select="IsSuccess"/></DATA></COL>
                <COL><DATA><xsl:value-of select="Message"/></DATA></COL>
                <COL><DATA><xsl:value-of select="Data/d2p1:string[1]"/></DATA></COL>
                <COL><DATA><xsl:value-of select="Data/d2p1:string[2]"/></DATA></COL>
                <COL><DATA><xsl:value-of select="Data/d2p1:string[3]"/></DATA></COL>
                <!-- ADD MORE DATA STRINGS AS NEEDED  -->
            </ROW>
        </RESULTSET>
    </FMPXMLRESULT>
</xsl:template>

</xsl:stylesheet>

以上内容将使您能够导入前三个数据字符串。您将在“导入记录”对话框的左窗格中看到字段名称 Field1Field2Field3(当然,您可以在样式表中更改这些名称以匹配您的目标字段名称).