我試圖反覆解析樹,並在最後的校驗,使用:<Signature value="e?'O;????5?u??c???]????<??jX" />
ParseError無效字符與cElementTree
我以爲elem.clear()
:
import xml.etree.cElementTree as et
for event, elem in et.iterparse("C:\myXMLfile.xml"):
if elem.tag == "Signature":
elem.clear()
這在這個角色引起了ParseError: reference to invalid character number: line 4205, column 25
聲明將是一種解決方法,但它似乎是在清理之前處理屬性。有沒有辦法可以清除這個元素而不先處理它?
我已經更改了代碼,以便它現在:for事件,elem在et.iterparse(「C:\ myXMLfile.xml」)中:if event ==「start」and elem.tag == 「簽名」:elem.clear()' 不幸的是,這產生了相同的結果。 – JMarotta
我能想到的唯一選擇就是迭代並移除Signature標籤,然後執行iterparse。這會對性能產生微不足道的影響,因爲它仍然是相同的順序。 –
我明白你的意思了。在這種情況下,我不確定如何實現它。顯然'開始'事件尋找開始標籤的結束「>」。 至於去除'Signature'標籤,我認爲這就是我必須要做的,儘管我不確定如何最好地做到這一點,除了逐行文件寫入。 – JMarotta