Извлечение текста, включая разрывы строк, из XML с помощью PHP - PullRequest
0 голосов
/ 25 декабря 2010

Когда я извлекаю текст из XML-файла

Here is some text before the
<br/><br/>
line break.

в PHP,

echo $value->description;

я получаю текст, но не включающие теги br.Как мне обойти это?

Спасибо.

Ответы [ 2 ]

1 голос
/ 25 декабря 2010

И по опыту вы даже не должны получать текст после тегов <br/>.Причина этого в том, что предполагается, что все текстовые узлы в XML заменены на <и> их аналогами htmlentity (), а все другие специальные символы заменены на htmlspecialchars ().Я вполне уверен, что это вызывает ошибку вашего XML DOM-парсера или, по крайней мере, делает его новым узлом, пустым текстовым узлом с разрывом строки, я думаю.

Единственное решение для этого -чтобы сохранить XML в строку, используйте regex, чтобы извлечь теги <br/> (ну, все теги <и> в этом отношении) и заменить их правильными значениями, которые я отметил выше.

ИлиВы можете прочитать о CDATA здесь и вместо этого использовать теги, но это если вы создаете этот XML-файл.Вам следует уведомить веб-мастера сайта, с которого вы получили XML, о том, что XML создан неправильно.

0 голосов
/ 25 декабря 2010

Сначала вы можете прочитать XML-файл в одну строку, а затем заменить '' от '».Теперь вы можете загрузить замененную строку в виде данных XML и обработать ее с помощью XML DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...