Помощник
|
парсинг из xml в mysql |
LoaD_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
Webmaster_hb |
22.7.2008, 10:41;
Ответить: Webmaster_hb
Сообщение
#2
|
|
что-то приведенный код далеко не полный, приведите весь код
|
|
|
LoaD_hb
|
Сообщение
#3
|
|
Webmaster, вот полный код:
<? Class XMLHTML { private $xmlparser, $tag, $m_vis; public $query = array(); function XMLHTML( ) { $this->xmlparser = xml_parser_create(); xml_set_object($this->xmlparser, $this); xml_set_element_handler($this->xmlparser, "startTag", "endTag"); xml_set_character_data_handler($this->xmlparser, "characterData"); $this->m_vis = new VISUAL; $this->get_query(); } // Ф-ия получает данные из формы function get_query() { } // Функция отвечает за обработку всех открывающих тегов. function startTag($parser, $tagname, $attributes) { if ( $tagname == "MAG_BASE") { $this->m_vis->begin(); } elseif ( $tagname == "MAGAZINE" ) { $this->m_vis->clear_data(); } $this->tag = $tagname; $previos_start_tag = $tagname; } // end function startTag // Функция отвечает за обработку всех символьных данных. function characterData($parser, $characterData) { echo $characterData; } // Функция отвечает за обработку всех закрывающих тегов. function endTag($parser, $tagname) { if ( $tagname == "MAG_BASE") { // $this->m_vis->print_all_data(); $this->m_vis->end(); } elseif ( $tagname == "MAGAZINE" ) { $this->m_vis->print_magazine_list(); } } function parse($fp) { // xml_parse($this->xm1parser,$data); // Обработать файл XML while ( $line = fread($fp, 4096) ) : // При возникновении ошибки прервать обработку // и вывести сообщение об ошибке. if ( ! xml_parse($this->xmlparser, $line, feof($fp))) : die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->xmlparser)), xml_get_current_line_number($this->xmlparser))); endif; endwhile; xml_parser_free( $this->xmlparser ); } } // Конец реализации класса XMLHTML // Открыть файл XML для обработки $xml_file = "base/1.xml"; $fp = fopen ($xml_file, "r"); // Создать новый объект $xml_parser = new XMLHTML; // Обработать $xml_file $xml_parser->parse($fp); ?> Что-то никак не могу я вытащить эти данные=( |
|
|
Webmaster_hb |
22.7.2008, 11:31;
Ответить: Webmaster_hb
Сообщение
#4
|
|
судя по коду вам достаточно указать имя файла - $xml_file = "base/1.xml"
но остальные функции у вас остаются без использования, это явно какой-то вырезанный кусок кода лучше вам написать код сначала используя стандартные примеры из документации PHP - http://www.php.net/xml |
|
|
LoaD_hb
|
Сообщение
#5
|
|
Webmaster, Прошу пращения, вот забыл выложить вот эту страницу:
<? class VISUAL{ private $tzapis = array ( 'ID' => '', 'TITLE' => '', 'PERIODICITY' => '', 'BIB_ID' => '', 'COMMENT' => '' ); // Устанавливает значене в массиве function set_element ( $key, $value ) { if ( !strlen( $value ) ) return; // if ( $key == "BIB_ID" ) { // $this->tzapis[$key] = split( " ", $value ); // array_push( $this->tzapis[$key], $value ); // } // else { $this->tzapis[$key] .= $value; // } } // Очищает массив function clear_data() { $this->tzapis['TITLE'] = ''; $this->tzapis['COMMENT'] = ''; $this->tzapis['BIB_ID'] = ''; // array_splice( $this->tzapis['BIB_ID'], 0 ); $this->tzapis['ID'] = ''; $this->tzapis['PERIODICITY'] = ''; } // Выводит список журналов, начинающихся с этой буквы function print_magazine_list () { if ( empty( $_GET['first_char'] ) || !isset( $_GET['first_char'] ) ) $_GET['first_char'] = 'а'; $pos = strpos( strtoupper($this->tzapis['TITLE']), strtoupper($_GET['first_char']) ); if ( $pos !== false && $pos == 0 ) { print "<tr><td align=left width=40%>\n"; print "<a href=\"mag/index.php?id=".$this->tzapis['ID']."&bib=".urlencode($this->tzapis['BIB_ID'])."\">".$this->tzapis['TITLE']."</a>"; print "</td>\n"; print "<td align=left><i><font size=2>".$this->tzapis['COMMENT']."</font></i></td>\n"; print "</tr>"; } } } // Конец реализации класса VISUAL /*$per = new VISUAL(); $per->begin(); */ ?> Мне не нужно чтобы все выводилось на экран, мне просто нужно записать их в базу... |
|
|
Webmaster_hb |
22.7.2008, 12:51;
Ответить: Webmaster_hb
Сообщение
#6
|
|
LoaD, зачем использовать громоздкий код в котором вы даже не разбираетесь ?
есть стандартная функция - xml_parse_into_struct - она преобразовывает данные из XML-файла в структуру (массив), осталось только этот массив занести в базу данных |
|
|
LoaD_hb
|
Сообщение
#7
|
|
|
Webmaster, Спасибо за помощь, буду разбираться с этой функцией=)
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Трафик в Телеграм (рассылка, инвайт, парсинг) | 9 | gelt | 2847 | 8.4.2024, 15:28 автор: gelt |
|
Нужен сайт с автонаполнением по XML | 1 | REGNET | 1227 | 7.3.2024, 15:08 автор: REGNET |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1242 | 24.11.2023, 14:46 автор: alexey |
|
ВКонтакте: полный комплекс услуг (массовая рассылка по стенам групп и в ЛС), парсинг, лайки, инвайты Гарантия самой низкой цены |
4 | MaxChemist | 1918 | 1.1.2023, 13:23 автор: MaxChemist |
|
Сбор баз, парсинг информации, постинг, автоматизация Качественно и в срок |
21 | SEOMR | 20839 | 22.7.2022, 15:10 автор: iodjin |
Текстовая версия | Сейчас: 19.4.2024, 22:04 |