Filemaker Pro и Import.IO. Как импортировать в FMP с помощью API Import.IO?

У меня есть хороший веб-скребок в Import.IO, и я хочу настроить автоматическую загрузку из Import.IO в Filemaker Pro. Я потратил на это месяцы и понятия не имею, почему это не работает. Вот что я сделал. Я не буду вдаваться в подробности Import.IO, так как в конце у вас есть опции для экспорта в Excel, CSV, JSON или с использованием технологии типа RESTful, которая мне нужна, через их API. У меня есть мой API, но когда я импортирую его в FMP, я всегда получаю эту ошибку

Msgstr "Ошибка в строке 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>

Вопросы:

  1. Как я могу проверить приведенную выше таблицу стилей по моим данным из Import.IO? Я счастлив экспортировать его в Excel и протестировать оттуда.

  2. Что-то явно не так с таблицей стилей выше?

  3. Как я могу вставить здесь свой API, чтобы кто-то еще мог проверить его в FMP?

FMP - отличная система, но RESTful-документация плоха, если честно. Я очень мало знаю о веб-сервисах, импорте XML и протоколах RESTful, поэтому любые другие предложения будут оценены.

Спасибо

ОБНОВЛЕНИЕ Посмотрите, ребята, я не гуру XML или действительно знаю что-нибудь о XSL и таблицах стилей. Все, что я хочу, - это возможность использовать API из Import.IO для импорта данных в Filemaker Pro. Это так просто! Я не хочу создавать сервер, или переводчика, или что-то в этом роде. Я бы подумал, что API Import.IO было бы достаточно, и их видео подразумевают это (но не с FMP). Так что, если вы, ребята, не захотите войти в мой мир, создать бесплатную учетную запись Import.IO, создать API и протестировать ее с FMP, то я действительно не знаю, что еще я могу вам дать. Я абсолютный новичок в XML, XSL и RESTful, как бы это ни называлось. Я тоже не прошу тебя кормить меня ложкой. Мне просто нужен хороший пример того, как заставить эту работу работать - если она вообще работает! Единственная альтернатива, которую я имею, - это экспортировать мои данные в интернете из Import.IO в виде CSV и импортировать их непосредственно во временную таблицу в FMP. Так просто, но так РУЧНО! Там должно быть автоматическое решение для этого. Спасибо

2 ответа

Решение

Что-то явно не так с таблицей стилей выше?

Да, несколько вещей. Во-первых, имена в XML не могут содержать пробелы - поэтому, когда вы вызываете:

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

или же:

<xsl:value-of select="@Data Origin"/>

это приведет к ошибке.

Далее ваш контекст является корнем / узел, который не может иметь атрибутов. В результате все ваши DATA элементы будут пустыми.

Это не означает, что ошибка, о которой вы сообщаете, вызвана каким-либо из этих недостатков. Это, вероятно, нет.

Как я могу вставить здесь свой API, чтобы кто-то еще мог проверить его в FMP?

У вашего API нет URL?

Если вы не передаете один узел с 19 атрибутами, ваша таблица стилей не имеет смысла. Что приводит ко второму вопросу - почему в некоторых ваших атрибутах есть пробелы. Сейчас я не импортирую. Однако это нарушит общие правила XML.

Вы не проверяете свою таблицу стилей, вы должны проверить свой XML. Таблица стилей либо работает, либо нет - просто протестируйте ее.

Попробуйте опубликовать образец XML-файла с помощью таблицы стилей.

FIleMaker не является приложением RESTful, я не знаю, на какую документацию вы ссылаетесь. Если вам нужно использовать RESTful, посмотрите на restfm:

http://www.restfm.com/

Другие вопросы по тегам