Re: [PHP4BETA] error(s) compiling DOM xml module...

[email protected] (Steve Langasek) Mon, 5 Jun 2000 14:23:16 -0500 (CDT)
Newsgroups php.version4
Message-ID <[email protected]>
On Mon, 5 Jun 2000, Jesse Griffis wrote:

> I'm running a development server that has been reliably serving up PHP3
> pages for quite a while.  PHP4 is out, and I figure "Pretty cool, I'll try
> out the DOM XML stuff that they just did".  Unfortunately, PHP4 won't
> compile with DOM enabled.  Here's the details (please feel free to slap me
> around if I miss something vital--I'm not that proficient in fixing this
> kind of thing):

> uname -a:
> Linux ns2.andalon.net 2.2.12-20 #1 Mon Sep 27 10:40:35 EDT 1999 i686 unknown
> (In fact, feel free to check out: ns2.andalon.net/phpinfo.php...it's working
> nicely. :))

> It's running RedHat 6.1.
> Seeing as the DOM XML docs say you need gnome's XML library, these RPMs seem
> to be the relevant ones:
> (the (-devel) part means I have the 'user' and devel rpms installed)
> gnome-core(-devel)-1.0.54-2
> gnome-libs(-devel)-1.0.54-1
> libxml(-devel)-1.8.7-1

> domxml.c: In function `php_if_domxml_children':
> domxml.c:554: structure has no member named `children'
> domxml.c:556: structure has no member named `children'

[snip]

I took a look at the headers on my system for comparison [RedHat... uh..
(6.0+6.1)/2], and in /usr/include/gnome-xml/tree.h from libxml-devel-1.7.3-1,
I find the following structure:

typedef struct xmlNode {
    ...
    struct xmlNode *childs;	/* parent->childs link */
    ...
}

I'm guessing this part of the code was originally written by a non-native
speaker of English? :)  If PHP4 is using 'children' instead of 'childs', then
this was probably changed in a later version of GNOME's libxml.  According to
the NEWS file, nothing older than libxml 2.0 beta is now supported.
Just checked RedHat 6.2 as well -- libxml-1.8.6-2 also lists 'childs' instead
of 'children'.  So it looks like this DOM XML support doesn't work with any
versions of libxml that RedHat ships.

Steve Langasek
postmodern programmer