Re: [PHP] which is quicker? XML or database?

2003-06-14 Thread John Hicks
Hi Justin--

I've been wrestling with a similar problem.

You say:
 I'm considering:

 a) storing this data in a MySQL table (a fairly simple
 query) b) storing this data in a pseudo XML format like:

 id24/id
 authorJustin French/author
 author_email[EMAIL PROTECTED]/author_email
 date_published2003-11-28/date_published
 introThis is my intro/intro
 bodyThis is my text and html -- say 1000 words?/body

Um, the above isn't pseudo XML. It's actually perfectly 
fine XML. Nothing pseudo about it.

 I'd love to
 hear any opinions about which would form of data
 retrieval would cause less of a performance burden on the
 server. . .

I've been wrestling with the same (or very similar) 
question: I'm trying to devise a flexible templating system 
where I can give my users control over content and inline 
formatting (allowing them to use, for example, p, em, 
span, ul) but retain control over page layout myself.

It does seem to me that XML should play a role here, but I 
haven't been able to find the right XML tools.

Ideally, the content would be stored in an XML document as 
you described. Your PHP page would use XPATH to address 
elements (or nodes) of the XML to set the value of PHP 
variables which would then be plugged into the HTML page.

XPATH allows you to do that much.

But every implementation of XPATH I've seen returns only 
the CDATA of an XML node, i.e. it strips out all the tags 
contained in the node. Thus you can't imbed formatting tags 
in the content.

(I've been tempted to go ahead and do a quick and dirty 
system using a relational DB, but such a system would break 
down from complexity over time. You would need a new table 
for each set of page components [or else devise a very 
messy and unnormal system with one grand table of columns 
with multiple uses].)

Am I missing something? Is there an implementation of xpath 
that does return the full contents of a node and not just 
the CDATA?

I guess you could use regular top-level PHP to parse an XML 
document chracter by character, storing in an array 
pointers to the beginning and ending characters of each 
element (i.e. the first character following the start tag 
and the last character before the end tag). Then you could 
look up in the array each desired element and use substr() 
to read its value and set a PHP variable to it. 

Ideally, you would want a system that included a facility 
to edit the XML document as well as read it. This would be 
used in the user's interface for editing his content. I 
would think an easy first step would be to recreate (or 
reassemble) the XML document after each edit session.

--John


On Friday 13 June 2003 11:30 pm, Justin French wrote:
 Hi all,

 I'm looking at a site where there will be a lot of
 articles, all of which will be added once, and rarely
 edited again...

 Let's say each article consisted of 6 data types:
 - id
 - author
 - authorEmail
 - datePublished
 - introduction
 - bodyText

 I'm considering:

 a) storing this data in a MySQL table (a fairly simple
 query) b) storing this data in a pseudo XML format like:

 id24/id
 authorJustin French/author
 author_email[EMAIL PROTECTED]/author_email
 date_published2003-11-28/date_published
 introThis is my intro/intro
 bodyThis is my text and html -- say 1000 words?/body


 I plan on doing my own performance tests, but I'd love to
 hear any opinions about which would form of data
 retrieval would cause less of a performance burden on the
 server (MySQL is on the same box as the htdocs and
 apache).


 TIA,

 Justin

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] which is quicker? XML or database?

2003-06-14 Thread Robert Cummings
John Hicks wrote:
 
 Hi Justin--
 
 I've been wrestling with a similar problem.
 
 You say:
  I'm considering:
 
  a) storing this data in a MySQL table (a fairly simple
  query) b) storing this data in a pseudo XML format like:
 
  id24/id
  authorJustin French/author
  author_email[EMAIL PROTECTED]/author_email
  date_published2003-11-28/date_published
  introThis is my intro/intro
  bodyThis is my text and html -- say 1000 words?/body
 
 Um, the above isn't pseudo XML. It's actually perfectly
 fine XML. Nothing pseudo about it.

Not to quibble (ok JUST to quibble :) It isn't correct XML because it
has no root tag *heheh*.

Cheers,
Rob.
-- 
.-.
| Worlds of Carnage - http://www.wocmud.org   |
:-:
| Come visit a world of myth and legend where |
| fantastical creatures come to life and the  |
| stuff of nightmares grasp for your soul.|
`-'

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php