Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
xpath or alternatives
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Yaron Minsky <yminsky@g...>
Subject: Re: [Caml-list] xpath or alternatives
I don't have the code in front of me, but I've done something like  
this using the list monad. i.e., using bind (= concat-map) and map  
chained together, along with a couple operators I wrote for lifting  
bits of XML documents into lists, by say returning the subnodes of the  
present node as a list.

It was quite effective.  I got the inspiration from a similar tool we  
have for navigating s-expressions, which we should release at some  

Yaron Minsky

On Sep 28, 2009, at 8:17 AM, Richard Jones <> wrote:

> I need to do some relatively simple extraction of fields from an XML
> document.  In Perl I would use xpath, very specifically if $xml was an
> XML document[1] stored as a string, then:
>    my $p = XML::XPath->new (xml => $xml);
>    my @disks = $p->findnodes ('//devices/disk/source/@dev');
>    push (@disks, $p->findnodes ('//devices/disk/source/@file'));
> This isn't type safe or pretty, but it is very easy to use for quick
> and dirty extraction.
> What is the OCaml equivalent for this sort of code?
> Alain Frisch has a library called Xpath
> (, but unfortunately this
> relies on the now obsolete wlex program.
> Is there a completely alternative way to do this?  Better still, in 3
> lines of code??
> Rich.
> [1] for XML doc, see:
> -- 
> Richard Jones
> Red Hat
> _______________________________________________
> Caml-list mailing list. Subscription management:
> Archives:
> Beginner's list:
> Bug reports: