![]() |
|
Модераторы: diadiavova |
![]()
|
|
| lemniscate |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
Есть такая программа Gosinsp которая составляет учебные планы, у меня стоит задача некоторые данные из этой программы перенести в базу mysql. Прога делает выгрузку в формате xml. Например есть вот такая строка которая интересует:
в частности интересуют значения атрибутов прошу помочь, я в xml полный ноль, копание в инете не помогло, функция php xml_parse_into_struct не подошла. |
|||
|
||||
| magelan |
|
||||
![]() потерял xPath ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 7 Всего: 16 |
ну раз вы пришли в этот раздел, а не в пхп, то я не буду вам предлагать учиться строить DOM и с ним работать.
файл 1.xml
файл 1.xsl
сохраняете рядышком на диске, травите на 1.xml интернет эксплорер, получаете SQL сам XSL в базу естественно писать не умеет, но SQL для консольки может сформировать любой. |
||||
|
|||||
| lemniscate |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
ого!!! супер, спасибо огромное, но вот есть одна загвоздка ... таких строк там может быть штук 20-30 и более. попробовал добавить еще одну строку и выдала естестно ошибку ("В документах XML допускается только один элемент верхнего уровня"). :( к тому же в самом xml файле который выгружается из программы куча все различных других записей, и вот из все этой кучи надо выделить только строки содержащие расчасовку. и еще а как быть с вот этими строками:
|
|||
|
||||
| lemniscate |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
Методом тыка и банальной эрудиции получилось из всего файла получить значения множества строк.
Сделал вот так
Но вот вопрос по семестровой расчасовки остался:
|
||||
|
|||||
| magelan |
|
|||
![]() потерял xPath ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 7 Всего: 16 |
я не очень в вопрос въезжаю, по поводу "расчасовки".
есть ли в вашем первом примере нода "Сем" или нет определяется очень просто:
Выбиратся будут только "Строка" имеющая внутри "Сем". Я вообще вам код привел в качестве абсурда не там заданного вопроса, но если вы хотите воспользоваться этой методикой, распишите подробно какой SQL вы желаете получить, сколько у вас таблиц, как поля таблиц соответствуют XML тегам и атрибутам. Тогда я, или кто нибудь еще сможет вам написать нормальную трансформацию XML -> SQL. |
|||
|
||||
| lemniscate |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
ок, все с нуля, и попорядку.
есть такой xml файл:
данные которые храняться в этих строках надо перегнать в таблицу mysql, вот её структура: таблица up_plan //содержит список дисциплин по специальности, форме обучения и часы up_plan_id id_qualif // ид квалификации id_spec // ид специальности id_fo // ид формы обучения id_disc // ид дисциплины id_kaf // ид кафедры vh // всего часов на данной специальности за все семестры (соответствует атрибуту ГОС) sz // в каких семестрах зачеты (атрибут СемЗач) se // в каком семестре экзамен (атрибут СемЭкз) таблица up_plan_sem // содержит расчасовку по семестрам, т.е. сколько практических, сколько лекционных часов в каждом семестре id_up_plan // ид плана ns // номер семестра pr // практические часы lek // лекции часы srs // часы, самостоятельная работа студента |
|||
|
||||
| magelan |
|
|||
![]() потерял xPath ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 7 Всего: 16 |
Это можно прибить <![CDATA[<PLAINTEXT>]]>, я себе для отладки ставил.
еще синтаксис SQL надо проверить, я честно на нем оч давно не писал.
Это сообщение отредактировал(а) magelan - 29.9.2010, 14:36 |
|||
|
||||
| lemniscate |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
спасибо огромное, но к сожалению браузер вернул пустую страницу, ни ошибки ничего :(
|
|||
|
||||
| magelan |
|
|||
![]() потерял xPath ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 7 Всего: 16 |
У меня SQL возвращает.
Правда ваш XML мне пришлось допилить напильником до состояния валидного:
|
|||
|
||||
| lemniscate |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
Спасибо огромное, переделал вот в таком виде
дело автоматизировал. |
|||
|
||||
![]()
|
| Правила форума "XML/XSLT" | |
|
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | XML, XSL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |