Xml Filemaker Pro和Import.IO。如何使用import.IO API导入FMP?

Xml Filemaker Pro和Import.IO。如何使用import.IO API导入FMP?,xml,excel,xslt,filemaker,import.io,Xml,Excel,Xslt,Filemaker,Import.io,我在Import.IO中有一个很好的web刮板,我想设置从Import.IO到Filemaker Pro的自动上传。我花了几个月的时间在这上面,我不知道为什么它不起作用。 这就是我所做的。 我不会详细讨论Import.IO的内容,因为最终您可以选择以Excel、CSV、JSON或使用RESTful类型技术(这是我想要的)通过API进行导出。 我有我的API,但是当我把它导入FMP时,我总是会遇到这个错误 “第1行中的错误,字符1” 我手工开发的样式表如下: <?xml version='1

我在Import.IO中有一个很好的web刮板,我想设置从Import.IO到Filemaker Pro的自动上传。我花了几个月的时间在这上面,我不知道为什么它不起作用。 这就是我所做的。 我不会详细讨论Import.IO的内容,因为最终您可以选择以Excel、CSV、JSON或使用RESTful类型技术(这是我想要的)通过API进行导出。 我有我的API,但是当我把它导入FMP时,我总是会遇到这个错误

“第1行中的错误,字符1”

我手工开发的样式表如下:

<?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 EMPTYOK="YES" MAXREPEAT="1" NAME="Input" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Result Number" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Widget" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Data Origin" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Result Row" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Source Page URL" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Link" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="f8" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="f9" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="f10" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Address" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Price" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Availability" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Baths" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Beds" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Cars" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="New" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Open" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Agent" TYPE="TEXT"/>
            </METADATA>
            <RESULTSET>
                <ROW>
                    <COL><DATA><xsl:value-of select="@input"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Result Number"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Widget"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Data Origin"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Result Row"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Source Page URL"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Link"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@f8"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@f9"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@f10"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Address"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Price"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Availability"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Baths"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Beds"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Cars"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@New"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Open"/></DATA></COL>
                    <COL><DATA><xsl:value-of select="@Agent"/></DATA></COL>
                </ROW>
            </RESULTSET>
        </FMPXMLRESULT> 
    </xsl:template>
</xsl:stylesheet>

问题:

  • 如何根据Import.IO中的数据验证上述样式表?我很高兴将其导出到Excel中,并从中进行测试

  • 上面的样式表有什么明显的错误吗

  • 我如何在这里输入API,以便其他人可以在FMP中测试它

  • FMP是一个很棒的系统,但老实说,它的RESTful文档很糟糕。我对web服务、XML导入和RESTful协议知之甚少,因此任何其他建议都将不胜感激

    多谢各位

    更新 听着,伙计们,我不是XML专家,也不是真正了解XSL和样式表的人。 我想要的只是能够使用Import.IO中的API将数据导入Filemaker Pro。就这么简单! 我不想创建一个服务器,或者一个翻译器,或者其他一些花哨的东西。 我本以为Import.IO API就足够了,他们的视频也暗示了这一点(但FMP并没有)。 所以除非你们愿意进入我的世界,创建一个免费的Import.IO帐户,创建一个API并用FMP测试它,否则我真的不知道还能给你们什么。我完全是XML、XSL和RESTful的初学者。 我也不是要你用勺子喂我。我只需要一个适当的例子,如何使这项工作-如果它在所有的工作! 我唯一的选择是将我的web抓取数据从Import.IO导出为CSV,并将其直接导入到FMP的临时表中。如此简单,但如此手动! 必须有一个自动的解决方案。
    谢谢你

    除非你传递一个带有19个属性的节点,否则你的样式表没有意义。这带来了第二个问题——为什么有些属性有空格。我现在不导入.IO,但这将打破一般的XML规则

    如果不验证样式表,则应验证XML。样式表要么有效,要么无效——您只需测试它

    尝试在样式表上发布示例XML和帮助

    FIleMaker不是RESTful应用程序,我不知道您指的是什么文档。如果需要使用RESTful,请查看restfm:

    上面的样式表有什么明显的错误吗

    是的,有几件事。首先,XML中的名称不能包含空格-因此当您调用:

    <xsl:value-of select="@Result Number"/>
    
    
    
    或:

    
    
    这将产生一个错误

    接下来,您的上下文是根
    /
    节点,它不能有属性。因此,所有
    数据
    元素将为空

    这并不意味着您报告的错误是由这些缺陷引起的。可能不是

    我如何在这里输入API,以便其他人可以在FMP中测试它


    你的API没有URL吗

    “FIleMaker不是RESTful应用程序”我认为这与以下问题无关:OP希望从RESTful API导入,而不是提供RESTful API。我对此表示感谢,但该评论是针对OP抱怨FIleMaker的RESTful文档“不好”的回应。@NicolaiKant XML没有意义?好吧,请帮我弄明白。他们的XML标准上的FMP文档是垃圾。例如,没有什么可以解释如何避免前两行数据。什么对你有意义?对不起,但仍然没有意义。为什么要避免前两行数据?请勿将其导出或从导入中删除。它不是FIleMaker XML没有意义它是您的XSLT。请重新阅读Michael的回复,您的映射是带有空格的属性,因此传入的XML将无法通过标准XML验证。感谢您提供的提示。是的,API是一个URL,但这对我们和我们的Import.io帐户来说不是一个安全问题吗?@Fernando68我对Import.io了解不够,无法回答这个问题。他们不提供一个“沙箱”进行测试吗?如果不是,你不能为自己创建这样的“沙箱”帐户吗从我读到的很少的内容来看,他们所做的只是重新格式化一个公开可用的站点——因此发布一个指向结果的URL并不比指向原始站点的URL更能说明问题。但这只是我的猜测。哇,你真的花了好几个月在这上面吗?大概一个小时就能解决。我个人不会在这种情况下使用XSL,因为它就像用榴弹炮射击苍蝇一样。一个简单的(对于FileMaker本机来说也是如此)PHP脚本卷曲API并使用simpelXML呈现可导入的XML是一个超级简单、易于维护和节省时间的解决方案。如果您还没有解决这个问题,请转到PHP/simpleXML并完成此操作
    <xsl:value-of select="@Data Origin"/>