теряются символы новой стороки при парсинге xml документа

  • Автор темы Автор темы AiK099
  • Дата начала Дата начала

AiK099

Новичок
теряются символы новой стороки при парсинге xml документа

При парсинге XML документа теряются символы новой строки (\r\n, \n) внутри блоков CDATA.

Пример XML документа:
PHP:
<LANGUAGES>
	<LANGUAGE PackName="English">
		<EVENTS>
			<EVENT><![CDATA[Line 1
Line 2
Line 3]]></EVENT>
		</EVENTS>
	</LANGUAGE>
</LANGUAGES>

"Character Data Handler" вызывается по разу на каждую строку (если она меньше 1024 символа длинной) или
по нескольно раз на строку (если он больше 1024 символа). Причём в самих данных которые попадают в "Character Data Handler" нету символов конца строки.

Использую стандартный xml_parse().
 
Character Data Handler МОЖЕТ вызываться сколько хочешь раз, это не противоречит SAX модели парсинга
насчет пробелов
1)
http://www.php.net/manual/ru/function.xml-parser-set-option.php
2)
http://php.net/manual/ref.xml.php
XML_OPTION_SKIP_WHITE
3)
для PHP5 можно попробовать XMLReader для тех же целей
он пошустрее будет и в DOM из него импортировать при желании гораздо приятнее
http://php.net/manual/ref.xmlreader.php
 
Непомогло, у меня не пробелы теряются, а символы конца строки, ENTERы. Как этого избежать?
 
Сверху