Question: I have a web service which returns the following response:

```
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">ba7665f2-4548-4f85-9b23-d8979f000722</string>

```

Using jQuery I thought I could do something like `$(response).find('string').text();` to get the string value from my xml.

However this doesn't work and in fact `$(response).find('string').length` equals 0.

How can I use javascript to get the string value from this xml?

Answer: 
Make sure that you are using the single version of ocaml compiler and rebuild xmlrpc.

UPDATE

Easy rule of thumb - have separate ocamlfind for each ocaml installation and make sure that only one ocaml + ocamlfind are in PATH at any point of time. i.e. install ocaml-3.12 into `/opt/ocaml-3.12` and install fresh ocamlfind into `/opt/ocaml-3.12/bin` too. Then when you want to use ocaml 3.12 just use `PATH=/opt/ocaml-3.12/bin:$PATH` and it will pick up ocamlfind and matching ocaml and all ocamlfind installations will be separated from system ocaml. The old ocaml install will not be affected at all.

(One can go with single ocamlfind and many ocaml installs but that's more complicated and I wouldn't recommend it - ocamlfind builds quickly anyway).
To expand a bit on ygrek answer : that probably means that xmlrpc-light has been compiled against a different version of the standard library (.. than the one available on your system). This is possible if you reinstalled a new standard library since you installed xmlrpc-light, or if you use a binary xmlrpc-light package that was compiled for a different system. The solution is probably to rebuild xmlrpc against your current standard library.

Those interface versioning issues are delicate because they don't correspond to what is the custom in C/C++ interface decisions; in those languages, when a package interface change, it is assumed by default to be compatible with the previous interface. In OCaml, they are assumed to be incompatible (they compare a hash of the whole module interface), and recompilation is mandatory.

Most packaging tools, e.g. for GNU/Linux distributions, assume the compatible-by-default behavior, and don't have the tooling in place to ensure recompilation when an interface changes. GODI, which was designed specifically for OCaml, does that dependency tracking (if you upgrade a package in GODI, it will recompile all dependent packages), and the Debian packaging team has a scheme in place to achieve the same behaviour with their packaging system (for more details about this, see the article [Enforcing Type-Safe Linking using Inter-Package Relationships](http://wiki.debian.org/Teams/OCamlTaskForce?action=AttachFile&do=view&target=jfla10-dh-ocaml.pdf)). Some other tools are careful about this, but unfortunately this is not the norm, and you may still have such errors using only the package manager of your distribution.