Piszę niezgodny plik XML (Sphinx's format xmlpipe2) i chcę, aby analizator składni LXML ignorował fakt, że istnieją nierozwiązane prefiksy przestrzeni nazw.Czy istnieje przełącznik ignorujący niezdefiniowane przedrostki przestrzeni nazw w LXML?
Przykładem Sphinx 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>
Jestem świadomy przekazując opcję słowa kluczowego parser, aby spróbować odzyskać złamany XML, np
parser = etree.XMLParser(recover=True)
tree = etree.parse('sphinxTest.xml', parser)
ale powyższe nie ignoruje prefiksu, usuwa go.
Mogę utworzyć cel dodający usunięty prefiks, np.
parser = etree.XMLParser(target = AddPrefix())
gdzie AddPrefix()
jest klasą, która dodaje przedrostek do każdego znacznika atrybutu. Czy jest prostszy sposób to zrobić? W końcu chcę programowo napisać format Xmlpipe2 Sphinx w czysty sposób.