I need to have a CGI script, among many other things, retrieve xml from a variety of sources (mostly databases - FMP, mySQL, and a couple of proprietary DB's, but also a few small data files stored as xml, or converted to xml from various text formats), process that xml with xslt stylesheets, and include the resulting xhtml as part of its output. Most of the CGI is complete - using text::template to make development of the UI as easy as possible for my non-perling coworker. I want to use XML & XSLT to fill in the bulk of the content on data-driven pages, because of the diverse data sources and because I already have XSL stylesheets to transform the XML to go between those data sources in use currently, so there should be much less code to create and maintain that way. This seemed like a pretty straight-forward task at first, but, apparently it's not.

After browsing through various modules on CPAN, it seems the best balance of ease-of-development and decent performance is to use XML::Sablotron . However, when I try to install it, I get the following result:

Expat must be installed prior to building XML::Sablotron and I can't find #'
it in the standard library directories. You can download expat from:


http://sourceforge.net/projects/expat/

If expat is installed, but in a non-standard directory, then use the
following options to Makefile.PL:

EXPATLIBPATH=... To set the directory in which to find libexpat

For example:

perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include

Note that if you build against a shareable library in a non-standard location
you may (on some platforms) also have to set your LD_LIBRARY_PATH environment
variable at run time for perl to find the library.


Expat must be installed prior to building XML::Sablotron and I can't find #'
it in the standard library directories. You can download expat from:


http://sourceforge.net/projects/expat/

If expat is installed, but in a non-standard directory, then use the
following options to Makefile.PL:

EXPATLIBPATH=... To set the directory in which to find libexpat

For example:

perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include

Note that if you build against a shareable library in a non-standard location
you may (on some platforms) also have to set your LD_LIBRARY_PATH environment
variable at run time for perl to find the library.


Running make test
  Make had some problems, maybe interrupted? Won't test
Running make install
  Make had some problems, maybe interrupted? Won't install


Unfortunately, I don't seem to be able to figure out how to install expat. I downloaded it from ftp://ftp.jclark.com/pub/xml , where it includes a makefile. However, my degree in music composition didn't involve much compiling and installation of c libraries, and after much searching I haven't come across any installation instructions for expat - just lots of examples for using it in C.

I tried simply make, and got the following error:

gcc -Wall -O2 -Ixmltok -Ixmlparse -DXML_NS -DXML_DTD -o xmlwf/xmlwf xmlwf/xmlwf.o xmlwf/xmlfile.o xmlwf/codepage.o xmlwf/unixfilemap.o xmlparse/libexpat.a
ld: archive: xmlparse/libexpat.a has no table of contents, add one with ranlib(1) (can't load from it)


Of course, I also don't know where the standard location of the EXPATLIBPATH would be in the first error - and having no particular need I can think of for installing in a non-standard location, I'd like to install it wherever standard is.

FWIW, I'm using 10.2.3, with perl 5.6 on the server the CGI will be deployed on. I would love any pointers to installation instructions anyone could suggest, as well as suggestions for alternative solutions for my original task (in the spirit of TMTOWTDI). But at any rate, any help in general would be much appreciated.

TIA


Chad A Gard http://www.percussionadvocates.com/chad




Reply via email to