Grazie della risposta,
ho provato ad utilizzare le chiamate PHP suggerite. E' vero che convertono i caratteri speciali, ma il mio problema persiste. Ad esempio, se provo ad inviare la seguente:

http.send("xmldata=<root><cnt>dolce&gabbana</cnt></root>");

e raccogliendo la stringa in PHP ed inviandola indietro con una echo:

$xmldata = $_POST['xmldata'];
echo htmlentities($xmldata);

oppure

$xmldata = $_POST['xmldata'];
echo htmlspecialchars($xmldata);

ottengo solo:

&lt;root&gt;&lt;cnt&gt;dolce

Quindi suppongo che la & appartenente alla stringa viene interpretata da PHP come la & di separazione argomenti per PHP.
Sto utilizzando male le funzioni PHP?
Grazie, un saluto.