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>
Вопросы:
Как я могу проверить приведенную выше таблицу стилей по моим данным из Import.IO? Я счастлив экспортировать его в Excel и протестировать оттуда.
Что-то явно не так с таблицей стилей выше?
Как я могу вставить здесь свой 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: