-
Notifications
You must be signed in to change notification settings - Fork 2
XPathReader: A library for reading/writing XML files over LibXML2
License
usqcd-software/xpath_reader
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Release:
========
This package contains the XPathReader class for accessing document
elements via XPath in C++. This package uses libxml -- you need to
get a good recent version (I use 2.5.1).
Configuration
=============
GNU autoconf / automake style configuration. You need to provide the
location of the libxml2 installation using the --with-libxml2=<dir>
option to configure:
eg: (for me on the Edinburgh Physics machines)
./configure --with-libxml2=/Home/bj/Devel/SciDAC/install/libxml2
then type
gmake
to make the library.
gmake install
to install as usual.
Running:
gmake check
will build the examples in the examples/ directory.
Documentation
=============
Almost as much as for libxml :) (or should that be :( )
I have added excessive comments to the header files:
basic_xpath_reader.h
and
xpath_reader.h
in the include directory, at the start of the files. I recommend
you read them.
Examples
========
I provide 3 examples in the examples directory:
i) basic_xpath_reader_test
--------------------------
This is effectively an XPath shell.
Run: basic_xpath_reader_test foo.xml
and type XPath expression.
Typing / should return the whole document.
ii) basic_xpath_reader_test2
----------------------------
This actually tries to get at bits of the XML and store them in
variables/classes. THe output should produce a bunch of failure
and success messages (it contains deliberately erroneous queries)
iii) xpath_reader_test2
-----------------------
Much like basic_xpath_reader_test2 but using the full XPathReader.
Also matches some weird types like complex'es and arrays etc.
Conformance
===========
XML: I use libxml2 and this sets an upper limit on my standard
conformance. I then deal probably dodgily with namespaces.
(see www.xmlsoft.org for details of libxml2 conformance)
C++: I make pervasive use of ANSI standard io and string streams
I also make use of templates a great deal, but hopefully
only in ANSI/ISO C++ ways.
My code compiled with g++-3.2 -- 'nuff said.
(earlier eg g++-2.x series compilers may barf).
Future
======
immediate/near:
Some kind of writer class API, so we can write as well as read.
intermediate/medium distant:
Autogeneration of unmarshal (read?) functions from some kind
of mapfile, which contains XPath (perhaps a sophisticated XSLT?).
This could be done by PERL/Python. The source for unmarshalling
would use XPathReader...
far/distant/perhaps never:
Autogeneration of the mapping file by reading XMLSchema
=> Complete C++ Open Source Data Binding Framework.
About
XPathReader: A library for reading/writing XML files over LibXML2
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published