Вопрос по парсингу XML

Tenarius
На сайте с 09.02.2012
Offline
14
505

Осуществляю парсинг через php и SAX. Имеется xml файл следующего содержания:


<CATALOG>
<BOOK>
<AUTHOR>Д. Ирвинн</AUTHOR>
<YEAR>2010</YEAR>
<PRICE>270</PRICE>
<PER>Твердый</PER>
</BOOK>
<BOOK>
<AUTHOR>М. Корнелл</AUTHOR>
<YEAR>2011</YEAR>
<PRICE>200</PRICE>
<PER>Твердый</PER>
</BOOK>
</CATALOG>

Функии парсинга расписал так:


function onStart($sax, $tag, $att) {
if ($tag !== 'CATALOG' and $tag != 'BOOK') {
echo '<td>';
}//if
if ($tag=='BOOK') {
echo '<tr>';
}//if
}//onStart
function onEnd ($sax, $tag) {
if ($tag != 'CATALOG' and $tag != 'BOOK'){
echo '</td>';
}//if
if ($tag=='BOOK') {
echo '</tr>';
}//if
}//onEnd
function onText ($sax, $text) {
echo $text;
}//onText
$parser = xml_parser_create('UTF-8');
xml_set_element_handler($parser,'onStart','onEnd');
xml_set_character_data_handler($parser,'onText');
echo '<table>';
xml_parse($parser,file_get_contents("catalog.xml"));
echo onStart ($sax, $tag, $att);
echo '</table>';

Однако, при выводе у меня получается лишний тег <td>



<table>
<tr>
<td>Д. Ирвинн</td>
<td>2010</td>
<td>270</td>
<td>Твердый</td>
</tr>
<tr>
<td>М. Корнелл</td>
<td>2011</td>
<td>200</td>
<td>Твердый</td>
</tr>
<td><----
</table>

Вопрос: откуда он берется и как его убрать?

P.S. В хтмл файле, в который вставлен парсер его точно нет.

Мне нужны деньги...
IL
На сайте с 20.04.2007
Offline
435
#1

Предпоследняя строчка:

xml_parse($parser,file_get_contents("catalog.xml"));

echo onStart ($sax, $tag, $att);// <-- что это?
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Tenarius
На сайте с 09.02.2012
Offline
14
#2

ivan-lev, точно. Спасибо, вот я баран слепой...

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

ТС, а почему бы не юзать SimpleXML? Как по мне, для чтения он самый лучший(разработка самих ПХПшников).

Подпись))
Tenarius
На сайте с 09.02.2012
Offline
14
#4
Милованов Ю.С:
ТС, а почему бы не юзать SimpleXML? Как по мне, для чтения он самый лучший(разработка самих ПХПшников).

Я только учусь пока что, до SimpleXML еще не добрался

forest25
На сайте с 12.09.2009
Offline
67
#5
Tenarius:
Я только учусь пока что, до SimpleXML еще не добрался

Оно проще в работе. Попробуйте =)

VPS 512MB 20GB SSD KVM - 5$ (http://u.hmdw.me/digitalocean) | ИМХО о хостингах (http://u.hmdw.me/hosting)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий