J'utilise python le troisième et l'API ElementTree. J'ai quelques xml de la forme:Python ElementTree - analyse les nœuds enfants et le texte dans l'ordre
<root>
<item>Over the <ref id="river" /> and through the <ref id="woods" />.</item>
<item>To Grandmother's <ref id="house" /> we go.</item>
</root>
Je veux être en mesure de parcourir le texte et les nœuds enfants pour un élément donné dans l'ordre. Ainsi, pour le premier élément, la liste que je veux ligne imprimée par ligne serait:
Over the
<Element 'ref' at 0x######>
and through the
<Element 'ref' at 0x######>
.
Mais je ne peux pas comprendre comment faire cela avec ElementTree. Je peux obtenir le texte dans l'ordre via itertext()
et les éléments enfants dans l'ordre de plusieurs façons, mais pas les entrelacées ensemble dans l'ordre. J'espérais pouvoir utiliser une expression XPath comme ./@text|./ref
, mais le sous-ensemble de XPath de ElementTree ne semble pas supporter la sélection d'attribut. Si je pouvais juste obtenir le contenu original brut de chaque nœud d'élément, je pourrais analyser moi-même si nécessaire.
comment devrait regarder la sortie finale? – RomanPerekhrest
La sortie est indiquée ci-dessus. – xdhmoore