XML: Comment obtenir des Éléments par la Valeur de l'Attribut - Python 2.7 et minidom
Je veux obtenir une liste d'Éléments XML basé première sur TagName et deuxième sur la Valeur de l'Attribut.
Im en utilisant le xml.dom de la bibliothèque et de python 2.7.
Tandis que son facile à obtenir de la première étape de faite:
from xml.dom import minidom
xmldoc = minidom.parse(r"C:\File.xml")
PFD = xmldoc.getElementsByTagName("PFD")
PNT = PFD.getElementsByTagName("PNT")
Ive été en regardant autour, mais ne peut pas trouver une solution pour la deuxième étape. Est là quelque chose comme un .getElementsByAttributeValue
qui pourrait me donner une liste de travail?
Si le XML ressemble à ceci
<PFD>
<PNT A="1" B=.../>
<PNT A="1" B=.../>
<PNT A="2" B=.../>
</PFD>
Au besoin de tous les Vcn où A="1" dans une liste.
OriginalL'auteur Martin | 2014-01-29
Vous devez vous connecter pour publier un commentaire.
Si vous ne trouvez pas une méthode intégrée, pourquoi ne pas effectuer une itération sur les éléments?
L'ajout d'éléments à une liste devrait être facile maintenant.
OriginalL'auteur Xeun
Si vous n'êtes pas limité à l'utilisation de xml.dom.minidom, lxml a une meilleure fonctionnalité de recherche. Notez que lxml n'est pas intégré, et requièrent l'installation de la lxml paquet et non-Python dépendances.
Par exemple:
Lxml prend également en charge toutes XPath via
element.xpath('query')
. D'autres fonctions de confort comprennentelement.findtext
qui trouve le bon élément et retourne le texte,element.find
etelement.findall
qui retourne le premier/la liste de tous les éléments correspondant à une requête en utilisant un sous-ensemble de XPath couvrant requêtes communes.OriginalL'auteur Hwesta
Essayez ceci:
OriginalL'auteur fcva