2015-09-19 10 views
1

Je donne les résultats suivants:espace de noms Iterparse

node = etree.fromstring(res.content) 
items = node.xpath('v:Items/v:Item', namespaces={'v':'http://schemas.microsoft.com/eds/2012/05/01/eds'}) 

Comment puis-je effectuer les opérations suivantes à l'aide iterparse? Par exemple:

contentBuffer=io.BytesIO(res.content) 
items = ET.iterparse(contentBuffer,tag='v:Items/v:Item') # <== namespace?? 

Répondre

1

Indiquez le nom d'étiquette complet utilisant Clark notation:

items = ET.iterparse(contentBuffer, 
        tag='{http://schemas.microsoft.com/eds/2012/05/01/eds}Item') 

L'utilisation d'un caractère générique pour l'espace de noms est également possible:

items = ET.iterparse(contentBuffer, tag='{*}Item') 

(Notez que vous ne pouvez pas utiliser tag='{*}Items/{*}Item' L'argument tag doit être un nom de tag, pas une expression.)