Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Вопрос по XMLReader в PHP 5. (http://www.flasher.ru/forum/showthread.php?t=84912)

Alek74 11.09.2006 19:47

Вопрос по 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>.


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

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