J'utilise xpath et LibXML dans une application iPhone pour trouver des nœuds dans un document XML. Je suis un noob dans xpath donc probablement je fais quelque chose de mal. Voici le xml:LibXML ne trouve aucun nœud pour mon expression xpath
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetUserByEmailResponse xmlns="http://tempuri.org/">
<GetUserByEmailResult>
<id>4006</id>
<name>Kudor Gyozo</name>
<email/>
<image/>
<facebookId>0</facebookId>
</GetUserByEmailResult>
</GetUserByEmailResponse>
</soap:Body>
</soap:Envelope>
L'expression XPath est //GetUserByEmailResult
. Aucun noeud n'est renvoyé. Je m'attends à obtenir <GetUserByEmailResult>
de retour. Si je teste la même chose here cela fonctionne bien. UPDATE1: Voici ce que je reçois d'un service web .net. Y at-il un moyen d'ignorer les espaces de noms dans libxml?
Oui, cela fonctionne merci beaucoup. BTW existe-t-il un moyen d'ignorer les espaces de noms? –
@kudor gyozo: Oui, vous pouvez ignorer les espaces de noms en vérifiant seulement les noms locaux dans vos expressions XPath comme suggéré dans la réponse de Wrikken. –