I am building a website in PHP in which the content is stored in an XML file. Basically I have a single index.php
page, which checks the querystring and serves the appropriate page from the XML.
For example, entering www.mysite.com/?page=home
would cause the PHP script to check the XML file for a <page id="home">
tag and paste whatever is inside that tag into index.php
.
The contents of <page>
tags are stored as HTML, thus:
<xmlroot>
<page id="home">
<h1>An HTML Header Tag!</h1>
<p>This is a paragraph</p>
</page>
[...etc]
</xmlroot>
I was hoping to be able to grab the appropriate <page>
tag and somehow parse the contents. I know that everything in the <page>
tag is valid HTML, so I was just going to use expat to run through the tags and echo
them straight back out.
So I am using the DOMDocument
method to find the correct <page>
, which works fine, except that the contents are returned as a DOM element. The expat parser requires a string. So I need to do one of two things:
Magically convert the DOM element to a string that keeps all the tags intact so I can use it in the expat parser. However, if I could do this I wouldn't need the expat parser, I could just echo that converted string straight out....
Use something other than expat.
Incidentally, I know I could just replace the <
and >
in the XML with <
and >
, but this makes the code quite hard to read and edit. I'd like to avoid it if possible.