Я строю веб-сайт на PHP, в котором содержимое хранится в файле XML. По сути, у меня есть одна страница index.php
, которая проверяет строку запроса и обслуживает соответствующую страницу из XML.
Например, ввод 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. Парсер экспата требует строку. Поэтому мне нужно сделать одну из двух вещей:
Магически преобразует элемент DOM в строку, которая сохраняет все теги нетронутыми, чтобы я мог использовать его в парсере экспатов. Однако, если бы я мог сделать это, мне бы не понадобился парсер экспатов, я мог бы просто отобразить эту преобразованную строку прямо ...
Используйте что-то отличное от экспата.
Кстати, я знаю, что мог бы просто заменить <
и >
в XML на <
и >
, но это делает код довольно сложным для чтения и редактирования. Я хотел бы избежать этого, если это возможно.