Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.09.2006, 19:47
Alek74 вне форума Посмотреть профиль Отправить личное сообщение для Alek74 Найти все сообщения от Alek74
  № 1  
Ответить с цитированием
Alek74

Регистрация: May 2006
Сообщений: 56
По умолчанию Вопрос по XMLReader в PHP 5.

Структура документа:
Код:
 <?xml version="1.0" encoding="windows-1251"?>
	<description>
		<title-info>
			<genre>mystery</genre>
			<author>
					<first-name>Борис</first-name>
					<last-name>Акунин</last-name>
				</author>
				<book-title>Азазель</book-title>
				<annotation>
					<p>Памяти XIX столетия, когда литература была великой.</p>
				<empty-line/>
				</annotation>
			</title-info>
		</description>
<body>....
и пошел текст
<p>.......</p>
<p>.......</p>
<p>.......</p>
<p>.......</p>
Использую:
Код:
$xml = new XMLReader();
if ($xml->open("lib/test.fb2")) {
	while ($xml->read()) {
		switch ($xml->name) {
			case "genre":
				$xml->read();
				$genre = $conf["genre"] = $xml->value;
				echo "<b>GENRE - </b>";
				echo iconv('UTF-8','windows-1251',$genre);
				echo "<br>";
				$xml->read();
				break;
			case "first-name":
				$xml->read();
				$first_name = $conf["first-name"] = $xml->value;
				echo "<b>first-name - </b>";
				echo iconv('UTF-8','windows-1251',$first_name);
				echo "<br>";
				$xml->read();
				break;				
			case "book-title":
				$xml->read();
				$book_title = $conf["book-title"] = $xml->value;
				echo "<b>BOOK-TITLE - </b>";
				echo iconv('UTF-8','windows-1251',$book_title);
				echo "<br>";
				$xml->read();
				break;
			case "annotation":
				$xml->read();
				$annotation = $conf["annotation"] = $xml->value;
				echo "<b>ANNOTATION - </b>";
				echo iconv('UTF-8','windows-1251',$annotation);
				echo "<br>";
				$xml->read();
				break;				
			case "p":
				$xml->read();
				$p = $conf["p"] = $xml->value;
				echo "<b>P - </b>";
				echo iconv('UTF-8','windows-1251',$p);
				echo "<br>";
				$xml->read();
				break;
			case "book-name":
				$xml->read();
				$book_name = $conf["book-name"] = $xml->value;
				echo "<b>BOOK-NAME - </b>";
				echo iconv('UTF-8','windows-1251',$book_name);
				echo "<br>";
				$xml->read();
				break;
		}
	}
	$xml->close();
}
else {
	echo "Ошибка открытия файла";
}}
Результат выдает:
Цитата:
GENRE - thriller_mystery
GENRE - thriller
GENRE - mystery
first-name - Борис
BOOK-TITLE - Азазель
ANNOTATION -
P -
ANNOTATION -
BOOK-NAME - Борис Акунин. Азазель
P - Борис Акунин
P - АЗАЗЕЛЬ
P - (Приключения Эраста Фандорина – 1)
P - Глава первая,
P - в которой описывается некая циничная выходка
Не могу понять, почему я не могу поймать первое вхождение <p> в <annotation>.


Последний раз редактировалось Alek74; 11.09.2006 в 19:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:01.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.