Filemaker XSL导入空白字段

时间:2015-07-08 20:02:44

标签: xslt filemaker

在学习将XML项目导入Filemaker 13时,我使用" xsl:for-each"来解决问题。获取多行数据以进行导入。我一直在使用的XML是W3 Schools Music Example

我用来转换这个XML的XSL如下:

<?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="Title" TYPE="TEXT"/>
      <FIELD NAME="Artist" TYPE="TEXT"/>
      <FIELD NAME="Country" TYPE="TEXT"/>
      <FIELD NAME="Company" TYPE="TEXT"/>
      <FIELD NAME="Price" TYPE="NUMBER"/>
      <FIELD NAME="Year" TYPE="NUMBER"/>
  </METADATA>

  <RESULTSET>  
    <xsl:for-each select="catalog/cd">   
          <ROW>
        <COL>
          <DATA><xsl:value-of select="catalog/cd/title"/></DATA>
        </COL>
        <COL>
          <DATA><xsl:value-of select="catalog/cd/artist"/></DATA>
        </COL>
        <COL>
          <DATA><xsl:value-of select="catalog/cd/country"/></DATA>
        </COL>
        <COL>
          <DATA><xsl:value-of select="catalog/cd/company"/></DATA>
        </COL>
        <COL>
          <DATA><xsl:value-of select="catalog/cd/price"/></DATA>
        </COL>
        <COL>
          <DATA><xsl:value-of select="catalog/cd/year"/></DATA>
        </COL>       
      </ROW>
      </xsl:for-each>     
  </RESULTSET>
</FMPXMLRESULT>

</xsl:template>
</xsl:stylesheet>

如果我删除&#34; xsl:for-each&#34;我会可靠地从导入到Filemaker的XML中获取第一条记录。使用&#34; xsl:for-each&#34;如图所示,我将得到26条空白记录。 XML中有26个项目,这很好,但我没有得到任何数据。

顺便说一下,如果xsl选择字符串被修改为读取&#34; catalog / cd / title [4]&#34;,我认为应该返回XML中的第四条记录,我再次得到一个空白记录。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

for-each内部节点内部是cd元素,因此您的路径需要相对于<xsl:value-of select="title"/>