1

Тема: Импорт произвольного XML

Начиная с версии 090 (стандарт) существует возможность импорта произвольного XML-файла (Импорт - Настраиваемый XML).
Поясню вкратце принцип его работы.

Рассмотрим создание нового профиля на примере импорта RSS 2.0. Формат достаточно простой, думаю, знаком почти каждому.
Ознакомимся с ним подробнее.

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title><![CDATA[Сообщество пользователей textKit]]></title>
        <link>http://textkit.ru/forum/</link>
        <description><![CDATA[Недавние темы раздела "Сообщество пользователей textKit".]]></description>
        <lastBuildDate>Wed, 16 Dec 2009 07:24:17 +0000</lastBuildDate>
        <generator>PunBB</generator>
        <item>
            <title><![CDATA[Экспорт в CMS блоголет]]></title>
            <link>http://textkit.ru/forum/topic183-eksport-v-cms-blogolet-new-posts.html</link>
            <description><![CDATA[<p>Хочу поделиться радостью....]]></description>
            <author><![CDATA[dummy@example.com (Nogrik)]]></author>
            <pubDate>Wed, 16 Dec 2009 07:24:17 +0000</pubDate>
            <guid>http://textkit.ru/forum/topic183-eksport-v-cms-blogolet-new-posts.html</guid>
        </item>
        <item>
            <title>ЗАГОЛОВОК</title>
            <link>ССЫЛКА НА ОРИГИНАЛ НОВОСТИ</link>
            <description>ТЕКСТ НОВОСТИ</description>
            <author>АВТОР</author>
            <pubDate>ДАТА ПУБЛИКАЦИИ</pubDate>
            <guid>ИДЕНТИФИКАТОР (он нам не потребуется)</guid>
        </item>
        
        ...
        
    </channel>
</rss>

Можно сказать, что вся информация о каждой записи хранится в узлах <item>, которые, в свою очередь, заключены в узле <channel>.

Итак, открываем окно импорта, выбираем исходный XML-файл и нажимаем на кнопку "Анализ" для того чтобы XML-парсер загрузил структуру документа. Теперь нужно настроить парсер на импорт нужных нам узлов дерева XML.
В качестве узла, сопоставляемого статье выбираем /rss/channel/item. Все узлы, находящиеся уровнем ниже подставятся в поля выбора свойств записи. Названия атрибутов начинаются с "@", в списки также попадают все вложенные узлы большей вложенности. Выбираем в качестве Заголовка и Даты title и pubDate соответственно.

Подробнее остановлюсь на Шаблоне текста статьи. Фишка в том, что можно задать определенный шаблон, по которому будет формироваться контент, это очень полезно, когда в XML-документе содержится много информации, которую невозможно сопоставить свойствам записей. Например, для материалов, предоставляемых различными магазинами, это может быть цена, партнерские ссылки на товар, рейтинги и прочее. Имя каждого узла, подставляемое в шаблон, заключается в двойные квадратные скобки "[[]]".
Для примера зададим такой шаблон:

Автор: [[author]]
[[description]]
<noindex><a href="[[link]]">Оригинал статьи</a></noindex>

Все, готово. Полученные настройки можно сохранить в профиль. Для этого вводим его название в поле профиль и нажимаем на кнопку с изображением дискеты. При следующем импорте просто выбираете сохраненный ранее профиль из списка.

Импорт позволяет загружать документы почти любой сложности - каждое выражение вроде "/rss/channel/item" является запросом к данным XML-документа. Как формировать сложные запросы вы можете в документации по XPath.

Задавайте свои вопросы или выкладывайте свои XML-документы, импортировать которые у вас не получается. Эта ветка создана для помощи в составлении профилей.

2

Re: Импорт произвольного XML

Отличая фишка этот XML-импорт. Открывает богатые возможности по работе с разными партнёрками.

"Палю тему" :)

  С пом. этого инструмента можно конвертировать различные хмл-фиды (шопы, например) в CMS. В совокупности с другими возможностями ТК (вставка случайных фраз, метки и тд) - это даёт нам новый, УНИКАЛЬНЫЙ (и легко редактируемый) контент с уникальным представлением.
Как пример - конвертация партнёрского магазина в Вордпресс. (Причем не надо юзать кривые и тормозные плагины всяких е-шопов.) Такого пока почти нигде нет. А кто первый встал - того и тапки ;).

Еще добавлю, о чем Nogrik забыл упомянуть.
На однотипные ХМЛки можно (и нужно!!!) создавать профиля.
При использовании профилей можно не  делать анализ файла после его загрузки.

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

3

Re: Импорт произвольного XML

полезная инфа
как раз собирался импортировать с вики в друпал

4

Re: Импорт произвольного XML

А хоть где нибудь есть намёк как разбирать партнёрский хмл?
за два часа не понял ничего...

5

Re: Импорт произвольного XML

SeoScope пишет:

А хоть где нибудь есть намёк как разбирать партнёрский хмл?
за два часа не понял ничего...

8) а пост Nogrik-а не помог? А дальше по ссылке к МС (на мануал по разбору ХМЛ)
Да, этот инструмент требует побольше усилий на изучение, нежели все инструменты\возможности ТК до этого. Но оно того стоит. ИМХО :)

Откровенно говоря - этот инструмент находится ещё в начальной стадии (ну мож не в начальной, но есть куда совершенствоваться\развиваться). Именно поэтому давайте Nogrikу файлы, в которых не можете разобраться.

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

6

Re: Импорт произвольного XML

SeoScope пишет:

А хоть где нибудь есть намёк как разбирать партнёрский хмл?
за два часа не понял ничего...

Как правило, партнерки, предоставляющие контент в таком виде, должны иметь документация на этот счет :) Каждый документ имеет разную структуру и назначение своих элементов. Но порой достаточно открыть такой документ в блокноте (советую Notepad++ он подсвечивает синтаксис (и умеет сворачивать-разворачивать узлы. Seonizator)), чтобы увидеть что к чему, если вас пугает текстовое представление документа, то можно воспользоваться визуальными редакторами вроде MS XML Notepad.

7

Re: Импорт произвольного XML

При импорте некоторых xml файлов в стандарте DTD замечена ошибка.
Решение:
Удалить из файла

<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
С уважением. Павел

8

Re: Импорт произвольного XML

Подготовлен мануал на тему импорт xml файлов, на примере файла с Ozon.ru
http://textkit.ru/help/manual/import/na … ml-fajlov/

SeoScope, если проблема ещё не решилась, то отпишите ещё раз мне на мыло, решим Ваш вопрос.

Отредактировано SeoNizator (18.12.2009 18:56:33)

С уважением. Павел

9

Re: Импорт произвольного XML

Делал по Вашему мануалу на xml файле от озона. Но почему-то categoryId у меня прописалось не категориями, которые стоят вверху (в вашем примере - это "Книжные бестселлеры"), а числом (в вашем примере - это "1112893").

В принципе, это логично, мы же в узле даем ссылку внутрь файла (/yml_catalog/shop/offers/offer) а категории стоят выше и categoryId не сопоставляются с category id.

Так вот, как сделать, чтобы категории были не числом id, а фразой, которая этому id соответствует.

P.S. И еще вопрос "Описание" в левом столбце (которому "name" присвоили тоже) - это тэг дискрипш будет?

10

Re: Импорт произвольного XML

В мануале использовался файл, где категория всего одна.
В данном виде xml сделать по другому пока нельзя. Если только регулярками как. Работаем над этим.

Описание это да, тег дискрипшен.

С уважением. Павел

11

Re: Импорт произвольного XML

Обновилась программа и мануал на эту тему:
http://textkit.ru/help/manual/import/na … ml-fajlov/

Скачиваем по второй ссылке TextKit Update.
http://textkit.ru/textkit/

Проблем с рубриками больше нет. В архиве обновления лежит и файл профиля для XML Ozon.ru

Если кому нужно импортировать файлы от каких-либо партнёрских программ, то обращайтесь, будем выкладывать профили в архив.

С уважением. Павел

12

Re: Импорт произвольного XML

Зашел сказать большое спасибо за программу вообще и работу с XML в частности. Это действительно открывает широкие возможности. Спасибо

13

Re: Импорт произвольного XML

tursep пишет:

Зашел сказать большое спасибо за программу вообще

Если не затруднит, отзывы лучше  оставлять на спец странице сайта (разработчикам было бы приятно, а определяющимся с выбором - помогало бы :) (Ну может быть ;) ).
И в конце концов именно пользователи и определяют направление развития ТК.

ЗЫ. С Рождеством всех. Нас. :)

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

14

Re: Импорт произвольного XML

Несколько вопросов по импорту xml. Если тег description состоит из нескольких абзацев, как добавить html-тег <br> между ними? Может быть стоит сделать галочку, типа такой "Добавлять br при переходе на новую строку в теге description"?
Если у записи несколько тегов categoryId, она добавляется во все категории или нет?

15

Re: Импорт произвольного XML

Если тег description состоит из нескольких абзацев, как добавить html-тег <br> между ними?

Давайте разберёмся.
description - вы имеете ввиду в ХМЛ-файле. Так?
Раз несколько абзацев - значит они в тегах <p></p>. Если их нет - значит и нет абзацев.
Вообще ХМЛ-файл поддерживает все HTML-теги. Если они там есть - значит будут и в ТК (я так думаю ;) ), а нет - значит нет.

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

16

Re: Импорт произвольного XML

SeoNizator пишет:

Давайте разберёмся.
description - вы имеете ввиду в ХМЛ-файле. Так?
Раз несколько абзацев - значит они в тегах <p></p>. Если их нет - значит и нет абзацев.
Вообще ХМЛ-файл поддерживает все HTML-теги. Если они там есть - значит будут и в ТК (я так думаю ;) ), а нет - значит нет.

Да, тег description в XML файле (от my-shop.ru). Пример:

<description>Содержание
Оперные увертюры
Увертюра к опере «Свадьба Фигаро» KV 492
Лондонский Филармонический оркестр
Дирижёр Томас Бичем
1949
Увертюра к опере «Волшебная флейта» KV 620
Королевский Филармонический оркестр
Дирижёр Томас Бичем</description>

Все переходы на новую строку были учтены TK, но хтмл-разметка их не учитывает само собой.

Вообще я  проблему уже решил, предварительной обработкой xml файла, заменив все переходы на новую строку уникальным словом и удалением лишних замен. После парсинга в ТК заменил уникальное слово на <br /> тег  ;)

Отредактировано micher (22.01.2010 13:49:30)

17

Re: Импорт произвольного XML

Все переходы на новую строку были учтены TK, но хтмл-разметка их не учитывает само собой.

Вы хотите сказать, что ХМЛ-файле присутствуют теги <br>, а при импорте в ТК они удаляются из кода?

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

18

Re: Импорт произвольного XML

SeoNizator пишет:

Вы хотите сказать, что ХМЛ-файле присутствуют теги <br>, а при импорте в ТК они удаляются из кода?

Изначально я распарсил исходный xml не содержащего теги <br /> в <description>. Само собой, все переходы на новую строку не были видны в html-виде записи.  Затем, с помощью поиск/замена в редакторе добился <br /> теги в description. В ТК попробовал распарсить, xml распарсился, но все <br /> теги были удалены. Решил проблему написанным выше способом.

Отредактировано micher (22.01.2010 19:39:31)

19

Re: Импорт произвольного XML

не понял,а где брать версию 090
у меня платная, 083, при этом опции (Импорт - Настраиваемый XML). нет. Есть импорт XML

20

Re: Импорт произвольного XML

скачать отсюда http://textkit.ru/textkit/

случайно версия не лайт?

Мне нравиться работать с Textkit.
Мой блог технологии для SEO

21

Re: Импорт произвольного XML

нет не лайт
пароль для входа на ту страницу не помню
а при попытке восстановления
Письмо не может быть отправлено.
Возможная причина: сервер не поддерживает функцию mail()... Обратитесь к техподдержке вашего хостинга

22

Re: Импорт произвольного XML

Valeratal пишет:

пароль для входа на ту страницу не помню

ну тогда в аську разработчикам...

Мне нравиться работать с Textkit.
Мой блог технологии для SEO

23

Re: Импорт произвольного XML

Отправил Вам данные на email.

С уважением. Павел

24

Re: Импорт произвольного XML

спасибо, получилось (правда мой xml не разбирается, но это уже отдельная история)

25

Re: Импорт произвольного XML

Нужен импорт XML с википедии.
Есть у кого-нибудь готовое решение?