Filemaker XSL 导入空白字段
Filemaker XSL Importing blank fields
在学习将 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>
如果删除 "xsl:for-each" 行,我将可靠地从导入到 Filemaker 的 XML 中获取第一条记录。如图所示 "xsl:for-each" 行就位后,我将获得 26 条空白记录。 XML 中有 26 个项目,很好,但我没有得到任何数据。
顺便说一句,如果将xsl select 字符串修改为"catalog/cd/title[4]",我相信应该是return XML 中的第四条记录,我再次得到一个空白记录。
我在这里错过了什么?
在 for-each
内部,上下文节点是一个 cd
元素,因此您的路径需要相对于该元素,例如<xsl:value-of select="title"/>
在学习将 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>
如果删除 "xsl:for-each" 行,我将可靠地从导入到 Filemaker 的 XML 中获取第一条记录。如图所示 "xsl:for-each" 行就位后,我将获得 26 条空白记录。 XML 中有 26 个项目,很好,但我没有得到任何数据。
顺便说一句,如果将xsl select 字符串修改为"catalog/cd/title[4]",我相信应该是return XML 中的第四条记录,我再次得到一个空白记录。
我在这里错过了什么?
在 for-each
内部,上下文节点是一个 cd
元素,因此您的路径需要相对于该元素,例如<xsl:value-of select="title"/>