Возможно ли скопировать содержимое XML из WebViewer

Практические советы по работе с FileMaker, типичные задачи и их решения. У вас вопрос? Пишите сюда.
andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение andrey volkov » 30 дек 2021, 04:42

да просто все.
1) из хмл простыни удалить все символы переноса строк
2) полученный текст разбить на строки преобразованием последнего завершающего тега каждой строки в символ перевода каретки. Далее использовать GetValue для парсинга строк последовательно
3) в каждой строке или найти кастом функцией содержимое тега или опять же все пары тегов (завершающий + новый начинающий) преобразовать в символ перевода каретки, а первый начинающий и последний завершающий тег заменить на пусто. Далее использовать GetValue для извлечения значений

Аватара пользователя
Nicolai Kant
Сообщения: 21
Зарегистрирован: 19 авг 2020, 19:16

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение Nicolai Kant » 04 янв 2022, 10:47

Я тоже использовал этот подход, но он мне не очень понравился. Основной проблемой было содержимое тега с возвратами каретки.

Еще одна проблема с парсингом XML как текста - это фильтрование <![CDATA[ тегов и специальных символов в XML

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение andrey volkov » 04 янв 2022, 16:05

да, но в курсе валют нет перевода каретки и CDATA, поэтому в данном случае все очень просто

вообще странно, что формат XML до сих пор используется без альтернативного JSON в продвинутых API

Аватара пользователя
Nicolai Kant
Сообщения: 21
Зарегистрирован: 19 авг 2020, 19:16

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение Nicolai Kant » 05 янв 2022, 11:31

да, но в курсе валют нет перевода каретки и CDATA, поэтому в данном случае все очень просто
Согласен, особенно с простой структурой XML.
вообще странно, что формат XML до сих пор используется без альтернативного JSON в продвинутых API
У меня обратный опыт - я вижу JSON используется пойти везде и некоторые сервисы предоставляют JSON как единственную опцию, правда я не работаю с Российскими операторами.

Простой пример - FileMaker Data/Admin API, использует только JSON

Alexander Klochkov
Сообщения: 31
Зарегистрирован: 12 сен 2017, 04:14

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение Alexander Klochkov » 06 янв 2022, 17:39

Коллеги.
Как обещал выложил готовое решение данной задачи.
В виде полностью открытого файла FM и пояснений в Word-е. Все пришлось послать на Яндекс диск. Раздел Готовые решения не пропустил файл чуть менее 3 Мб.
Ссылка ниже и в разделе Готовые решения.
https://disk.yandex.ru/d/KJQ1-kQ-A_BSqw
Александр Клочков
apklotchkov@yahoo.com

Alexei Sytch
Сообщения: 106
Зарегистрирован: 21 сен 2017, 18:48
Откуда: Минск

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение Alexei Sytch » 20 янв 2022, 20:01

В копилку вот XSLT transformation для котировок ЦБРФ за текущий день с ISO кодом
http://www.cbr.ru/scripts/XML_daily.asp
на сайте можно посмотреть как за любой день выгрузить. Сохраните как текстовый файл CBRratesDailyISO2fm.xslt и укажите для импорта XML.

Код: Выделить всё

<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- Foreign Currency Market Lib ISO http://www.cbr.ru/scripts/XML_daily.asp -->
   <xsl:template match="/">
      <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
       <METADATA>
            <FIELD NAME="Date" TYPE="DATE" />
            <FIELD NAME="ID" TYPE="TEXT" />
            <FIELD NAME="NumCode" TYPE="TEXT" />
            <FIELD NAME="CharCode" TYPE="TEXT" />
<FIELD NAME="Nominal" TYPE="NUMBER" />
<FIELD NAME="Name" TYPE="TEXT" />
<FIELD NAME="Value" TYPE="NUMBER" />
         </METADATA>
         <RESULTSET FOUND="15">
<xsl:for-each select="ValCurs/Valute" >

<xsl:variable name="c">

<xsl:value-of select="position()" />

</xsl:variable>

<ROW MODID="$c" RECORDID="$c" >
         
                  <COL>
                  <DATA>
<xsl:value-of select="../..//@Date" />          
                  </DATA>
                  </COL>

                  <COL>
                  <DATA>
<xsl:value-of select="..//@ID" />          
                  </DATA>
                  </COL>

                  <COL>
                  <DATA>
<xsl:value-of select="./NumCode" />          
                  </DATA>
                  </COL>

                  <COL>
                  <DATA>
<xsl:value-of select="./CharCode" />          
                  </DATA>
                  </COL>

                  <COL>
                  <DATA>
<xsl:value-of select="./Nominal" />          
                  </DATA>
                  </COL>
 
                  <COL>
                  <DATA>
<xsl:value-of select="./Name" />          
                  </DATA>
                  </COL>
 
                  <COL>
                  <DATA>
<xsl:value-of select="./Value" />
                  </DATA>
                  </COL>
               </ROW>
</xsl:for-each>
</RESULTSET>
</FMPXMLRESULT>
</xsl:template>
</xsl:stylesheet>

khalex
Сообщения: 13
Зарегистрирован: 12 сен 2017, 03:31
Откуда: Краснодар

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение khalex » 26 фев 2022, 06:37

Доброго.

У меня у одно перестал работать XSL ?
25 числа еще благополучно курс загружался в базу , теперь выдает ошибку. Причем как с моим XSL файлом так и скопированным в этой ветке. Проверил на двух компьютерах ( на интеле и на М1 ) . также функция BaseElements BE_XSLT_ApplyInMemory ( $rbk ; $xslt ) возвращает Null
Вложения
Снимок экрана 2022-02-26 в 09.35.21.png
Снимок экрана 2022-02-26 в 09.35.21.png (79.19 КБ) 20088 просмотров

Alexander Klochkov
Сообщения: 31
Зарегистрирован: 12 сен 2017, 04:14

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение Alexander Klochkov » 28 фев 2022, 08:09

Если данные тянуться с ЦБ РФ то по понедельникам их нет. Завтра будут. Нужно использовать данные предыдущей субботы.
Александр Клочков
apklotchkov@yahoo.com

khalex
Сообщения: 13
Зарегистрирован: 12 сен 2017, 03:31
Откуда: Краснодар

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение khalex » 28 фев 2022, 11:45

Любую дату ставлю .. не работает..

Alexander Klochkov
Сообщения: 31
Зарегистрирован: 12 сен 2017, 04:14

Re: Возможно ли скопировать содержимое XML из WebViewer

Сообщение Alexander Klochkov » 01 мар 2022, 16:02

Ничего не могу сказать по XSL.
Я закачиваю курсы с ЦБ РФ через XML.
Сегодня все закачалось нормально.
Александр Клочков
apklotchkov@yahoo.com

Ответить