ФорумРазработкаУстановка и администрирование ПОСерверы баз данных → Работаем с XML данными и XPath в MySQL

Работаем с XML данными и XPath в MySQL

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 19:05


    Как известно, в MySQL 5.1 внедрили функции для работы с XML, сегодня я расскажу про эти две функции более подробно, а так же вкратце опишу как работать с XPath в MySQL.


    http://adw0rd.ru/2009/xpath-mysql/
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 19:09, спустя 3 минуты 56 секунд

    Само по себе это очень интересно, но честно говоря не представляю где практически это можно пременить и как XML может оказаться внутри базы.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 19:16, спустя 6 минут 48 секунд

    прикольно так то. но как уже алексб сказал, какого хера хмл в бд делает?)))

    но тема зачотная однозначно.

    mysql> SELECT benchmark(1000000, ExtractValue(@xml, '/a/b/c'));
    +————————————————–+
    | benchmark(1000000, ExtractValue(@xml, '/a/b/c')) |
    +————————————————–+
    | 0 |
    +————————————————–+
    1 row in set (2.47 sec)

    mysql> SELECT benchmark(1000000, ExtractValue(@xml, '/a/b/c'));
    +————————————————–+
    | benchmark(1000000, ExtractValue(@xml, '/a/b/c')) |
    +————————————————–+
    | 0 |
    +————————————————–+
    1 row in set (2.48 sec)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 19:32, спустя 16 минут 5 секунд

    Если вы используете XML и XPath, то возможно вам будет удобнее оперировать данными в самом MySQL, не пользуясь сторонними средствами.

    Например, вы запрашиваете сначала XML (SQL SELECT), потом через XPath производите выборку (например средствами PHP), заменяете один XML-фрагмент на другой и сохраняете в БД (SQL UPDATE). А можете сразу же в MySQL это сделать.

    Так же можете создавать XML базы данных и использовать XPath как альтернативный язык запросов. От SQL синтаксиса вы конечно не сможете полностью отказаться, да и данные буду храниться в TEXT ячейках. Однако это просто еще один слой абстракции…

    Если вы работает с XML и XPath, то думаю найдете применение… :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 19:35, спустя 2 минуты 34 секунды

    adw0rd, ну это все понятно. Но вот какой-то даже гипотетической задачи, где это было бы оправдано пока в голову не приходит.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 19:37, спустя 2 минуты 35 секунд

    AlexB, ты реально применяешь XML и XPath вне MySQL?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 19:40, спустя 2 минуты 30 секунд


    adw0rd, ну это все понятно. Но вот какой-то даже гипотетической задачи, где это было бы оправдано пока в голову не приходит.
    помню работал в скбконтур. у них есть версии налоговых документов - хмл файлы, по которым генерятся формы в экселе … так вот там я думаю что это бы имело смысл, хотя тое думаю что небольшой … %) ведь хмл представление это своего рода база данных, тем более если оперировать ей с помощью хпатх, тогда точно бд своего рода :)
    Сапожник без сапог
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 20:02, спустя 22 минуты 19 секунд


    AlexB, ты реально применяешь XML и XPath вне MySQL?
    Да, мне приходит из внутренний базы некий XML который надо определенным образом разбирать и укладывать данные из него в денормализованную базу с которой собственно работает сайт.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 13 апреля 2009 г. 20:26, спустя 24 минуты 7 секунд

    AlexB, ммм… ну вот отличный пример, получаем какие-либо данные из одной таблицы, разбираем и сохраняем в другие таблицы разобранные данные..?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 14 апреля 2009 г. 1:25, спустя 4 часа 59 минут 14 секунд


    AlexB, ммм… ну вот отличный пример, получаем какие-либо данные из одной таблицы, разбираем и сохраняем в другие таблицы разобранные данные..?
    Ну примерно так, ну и что? XML то в базу мне даже в самом страшном сне не приснится пихать … ))
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 14 апреля 2009 г. 2:06, спустя 41 минуту 4 секунды

    AlexB, тогда не понял тебя, ты хранишь XML в БД или нет?)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 апреля 2009 г. 3:07, спустя 1 час 22 секунды


    AlexB, тогда не понял тебя, ты хранишь XML в БД или нет?)
    не хранит
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 14 апреля 2009 г. 9:57, спустя 6 часов 50 минут 30 секунд

    phpdude, из его поста понятно что он манипулирует данными из базы…
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 14 апреля 2009 г. 11:21, спустя 1 час 23 минуты 39 секунд


    phpdude, из его поста понятно что он манипулирует данными из базы…
    Не храню. XML используется как формат обмена. Люди работают с виндовым приложением, оно извлекает данные из своей MS-cовской базы, оборачивает в XML, постит веб-приложению, пых разбирает XML, складывает в мускул, дальше все как обычно …

    Ты же спросил: "AlexB, ты реально применяешь XML и XPath вне MySQL?", я ответил ДА т.к. ключевое слово было ВНЕ. ))))))))
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 14 апреля 2009 г. 11:55, спустя 33 минуты 46 секунд

    AlexB, ясно, я лучше примеры привести не смогу :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни

Пожалуйста, авторизуйтесь, чтобы написать комментарий!