Les caractères d'échappement permettent d'insérer dans des expressions X-Pointers des caractères réservés ou diverses lettres, accentuées notamment. Cela permet d'éviter toutes ambiguités quant aux délimiteurs de l'expressions.

Une paranthèse ne peut être incluse en l'état. Il faut faire appel à un caractère d'échappement "^" (accent circonflexe).

xpointer(string-range("^(une valeur^)"))

D'ailleurs, l'accent circonflexe doit être doublé pour pouvoir l'introduire dans une expression.

xpointer(string-range("^^une valeur"))

Les caractères & et < doivent être remplacés par leur référence d'entité respective : &amp; et &lt;.

xpointer(//element position() &lt; 3)

xpointer(string-range("XML &amp; Compagnie"))

Les caractères guillemets simples (') ou doubles (") doivent être remplacés par leur valeur hexadécimale ou leur référence d'entité.

<!-- Guillemets doubles " -->
xpointer(string-range(//*, 'un "essai fini"'))

<-- Valeur hexadécimale de " -->
xpointer(string-range(//*, 'un &#34;essai fini&#34;'))

<!-- Référence d'entité de " -->
xpointer(string-range(//*, 'un &quot;essai fini&quot;'))

<!-- Guillemets simples ' -->
xpointer(string-range(//*, 'un 'essai fini''))

<!-- Valeur hexadécimale de ' -->
xpointer(string-range(//*, 'un &#39;essai fini&#39;'))

<!-- Référence d'entité de ' -->
xpointer(string-range(//*, 'un &apos;essai fini&apos;'))

Les caractères accentués du jeu d'encodage ISO-8859 doivent être échangé par leur valeur hexadécimale ou leur référence d'entité.

<!-- Valeur hexadécimale de é -->
xpointer(id("Pr&#233;ambule"))

<!-- Référence d'entité de é -->
xpointer(id("Pr&eacute;ambule"))