Я создаю сайт на PHP, в котором содержимое хранится в XML-файле. В основном у меня есть одна страница index.php
, которая проверяет запрос и служит соответствующей странице из XML.Анализ только части документа с expat в PHP
Например, ввод www.mysite.com/?page=home
заставит PHP-скрипт проверить XML-файл для тега <page id="home">
и вставить все, что находится внутри этого тега, в index.php
.
Содержимое <page>
теги хранятся в виде HTML, таким образом:
<xmlroot>
<page id="home">
<h1>An HTML Header Tag!</h1>
<p>This is a paragraph</p>
</page>
[...etc]
</xmlroot>
Я надеялся, чтобы иметь возможность захватить соответствующий <page>
тег и как-то разобрать содержимое. Я знаю, что все в теге <page>
является допустимым HTML, поэтому я просто собирался использовать expat для запуска тегов и echo
их прямо назад.
Так что я использую метод DOMDocument
, чтобы найти правильный <page>
, который отлично работает, за исключением того, что содержимое возвращается как элемент DOM. Для парсера expat требуется строка. Так что мне нужно сделать одну из двух вещей:
Волшебно преобразовать элемент DOM в строку, которая сохраняет все теги нетронутыми, так что я могу использовать его в эмигранта анализатор. Однако, если бы я мог это сделать, мне не нужен синтаксический анализатор expat, я мог бы просто откликнуться на эту преобразованную строку прямо ...
Используйте что-то другое, чем expat.
Кстати, я знаю, что я мог бы просто заменить <
и >
в XML с <
и >
, но это делает код довольно трудно читать и редактировать. Я бы хотел избежать этого, если это возможно.
Черт, я просто вспомнил о CDATA ... Я попробую. Я обновлю это, если мне удастся это сделать. –
Хорошо, используя CDATA, решил. Я отправлю полный ответ, чтобы помочь кому-то еще, у кого была такая же проблема. Мне придется подождать до тех пор, пока stackoverflow не позволит мне, хотя будет около 7 часов ... :-) –