空の要素がある場合とない場合があるスクリプトによって生成されたXMLがあります。XMLに空の要素を含めることはできないと言われました。次に例を示します。
<customer>
<govId>
<id>@</id>
<idType>SSN</idType>
<issueDate/>
<expireDate/>
<dob/>
<state/>
<county/>
<country/>
</govId>
<govId>
<id/>
<idType/>
<issueDate/>
<expireDate/>
<dob/>
<state/>
<county/>
<country/>
</govId>
</customer>
出力は次のようになります。
<customer>
<govId>
<id>@</id>
<idType>SSN</idType>
</govId>
</customer>
空の要素をすべて削除する必要があります。私のコードは「govId」サブ要素の空のものを取り出しましたが、2番目の要素では何も取り出していませんでした。現在、lxml.objectifyを使用しています。
これが基本的に私がしていることです:
root = objectify.fromstring(xml)
for customer in root.customers.iterchildren():
for e in customer.govId.iterchildren():
if not e.text:
customer.govId.remove(e)
lxml objectifyを使用してこれを行う方法を知っている人はいますか、それとももっと簡単な方法の期間がありますか?また、すべての要素が空の場合は、2番目の「govId」要素全体を削除したいと思います。