2010-08-12 16 views
0

exemple XML:SimpleXML XPath pour attribuer une valeur et des valeurs et nœud enfant dans une requête

<users> 
    <user id="fakeuserid"> 

    <password>fakeuserpassword</password> 

    <username>fakeusername</username> 

    </user> 

    <user id="anotherfakeuserid"> 

    <password>anotherfakeuserpassword</password> 

    <username>anotherfakeusername</username> 

    </user> 
</users> 

Je voudrais être en mesure d'accéder à l'attribut id et la valeur de nom d'utilisateur de chaque utilisateur. Comment pourrais-je faire cela? En ce moment je suis en train avec:/*/utilisateur et // user sans résultat

Merci à l'avance, Toy

Répondre

0

XPath:

  • userId = « // user/@ id »
  • nom d'utilisateur = '// user/nom d'utilisateur'

Est-ce que vous cherchez?

1

Utilisation:

/users/user/@id | /users/user/username 

Prenez note l'utilisation du XPath union opérateur |

+0

Dimitri, votre idée fonctionne, mais il retourne deux ensembles de valeurs. J'essaye de renvoyer un jeu d'enregistrements avec un idfield pour l'usage dans des résultats de recherche et des formes d'édition. dans ce cas sql pourrait ressembler à: "select * from tblUsers" xml équivalent: // user De là, je pouvais accéder à tous les nœuds enfants: user-> mot de passe, user-> nom d'utilisateur mais comment pourrais-je avoir accès la valeur de l'attribut id? Encore merci d'avance pour l'aide – Toy

+0

@Toy: Si vous avez accès à un élément 'user', vous pouvez émettre une autre expression XPath contre cet élément' user': '@ id' –