7
我解析不符合標準的XML文件(Sphinx's xmlpipe2數據格式),並想LXML解析器忽視的事實是存在未解決的命名空間前綴。是否有開關忽略LXML中未定義的名稱空間前綴?
獅身人面像XML的一個例子:
<sphinx:schema>
<sphinx:field name="subject"/>
<sphinx:field name="content"/>
<sphinx:attr name="published" type="timestamp"/>
<sphinx:attr name="author_id" type="int" bits="16" default="1"/>
</sphinx:schema>
我知道經過一個解析器關鍵字選項嘗試恢復破損的XML,例如中
parser = etree.XMLParser(recover=True)
tree = etree.parse('sphinxTest.xml', parser)
但上述不忽略前綴,它將其刪除。
我可以創建一個目標,添加已刪除的前綴,例如
parser = etree.XMLParser(target = AddPrefix())
其中AddPrefix()
是將前綴添加到每個屬性標記的類。 有沒有更簡單的方法來做到這一點? 最終我想以編程方式乾淨地編寫Sphinx的xmlpipe2格式。