2012-01-17 3 views
-2

C'est un exemple de requête que je pourrais faire en PHP:Comment faire une requête dans ElementTree comme dans Xpath?

foreach(steps as step) 
{ 
    areT_eles = xpath->query(t_eleQuery, step) 
} 

maintenant en python:

for step in index steps: 
    areT_eles = ?!?!?!?!!??!?!!??!! 

J'ai essayé ceci:

for step in index steps: 
    areT_eles = xpath.query(t_eleQuery, step) 

Il ne fonctionne pas. J'ai seulement importé Elementtree de xml.etree.ElementTree, cependant.

La page la plus officielle que j'ai pu trouver sur xpath en elementtree n'avait pas de documentation ou d'exemples .... Et nous savons tous à quel point les tutoriels de Python sont horriblement mauvais. Donc, je cherche aussi une bonne ressource.

+2

Les tutoriels de Python ne sont pas si "horriblement mauvais" qu'ils vous diront d'écrire 'foreach' quand vous voulez dire' for'. –

+0

@larsmans C'est vrai, mais ils sont bien pires que ça d'autres façons. Si vous voulez que je gratte cette ligne, c'est bien. Si la communauté n'entend pas le tollé, rien ne changera. Je ne veux pas ça. Je l'ajoute à toutes mes questions python sur tous les sites que je publie. Vraiment, ce sont les gens qui écrivent et éditent les docs ... Ils s'en fichent. –

+2

Je ne trouve pas cela une attitude très constructive. Lorsqu'un tutoriel ne vous est pas clair, contactez ses auteurs ou la liste de diffusion correspondante. La communauté Python est, selon mon expérience, une foule très serviable et tolérante envers les nouveaux arrivants, tant que vous ne les approchez pas de manière hostile. –

Répondre

2

Si vous avez LXML, la haute performance, version complète de ElementTree, installé, vous pouvez utiliser XPath comme suit:

>>> from lxml import etree 
>>> xml = """<ham><spam>Hello!</spam> <spam>Goodbye!</spam></ham>""" 
>>> tree.xpath("//spam/text()") 
['Hello!', 'Goodbye!'] 

je peux recommander LXML pour tous vos besoins XML Python; c'est rapide et Pythonic.

+0

Oui, je l'ai confirmé. Ajouter 'step' comme deuxième argument fonctionne également. Je vous remercie. –

Questions connexes