Trouver occurrence l'utilisation de plusieurs attributs dans ElementTree/Python
J'ai le code XML suivant.
<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="10" failures="0" disabled="0" errors="0" time="0.001" name="AllTests">
<testsuite name="TestOne" tests="5" failures="0" disabled="0" errors="0" time="0.001">
<testcase name="DefaultConstructor" status="run" time="0" classname="TestOne" />
<testcase name="DefaultDestructor" status="run" time="0" classname="TestOne" />
<testcase name="VHDL_EMIT_Passthrough" status="run" time="0" classname="TestOne" />
<testcase name="VHDL_BUILD_Passthrough" status="run" time="0" classname="TestOne" />
<testcase name="VHDL_SIMULATE_Passthrough" status="run" time="0.001" classname="TestOne" />
</testsuite>
</testsuites>
Q : Comment puis-je trouver le nœud <testcase name="VHDL_BUILD_Passthrough" status="run" time="0" classname="TestOne" />
? J'ai trouver la fonction tree.find()
, mais le paramètre à cette fonction semble que le nom de l'élément.
J'ai besoin de trouver le nœud basé sur l'attribut : name = "VHDL_BUILD_Passthrough" AND classname="TestOne"
.
Votre
c'était une faute de frappe, merci pour cette remarque.
testsuite
balise n'est pas fermée?c'était une faute de frappe, merci pour cette remarque.
OriginalL'auteur prosseek | 2011-01-26
Vous devez vous connecter pour publier un commentaire.
Cela dépend de la version que vous utilisez. Si vous avez ElementTree 1.3+ (y compris en Python 2.7 de la bibliothèque standard), vous pouvez utiliser une base de l'expression xpath, comme décrite dans les docs, comme
[@attrib='value']
:Malheureusement, si vous utilisez une version antérieure de ElementTree (1.2, inclus dans la bibliothèque standard de python 2.5 et 2.6) vous ne pouvez utiliser que la commodité et la nécessité de filtrer vous-même.
OriginalL'auteur chmullig
Vous aurez à parcourir le
<testcase />
les éléments que vous avez, comme suit:OriginalL'auteur Santa