如何在lxml中实现自定义子元素的方法?

时间:2019-02-18 19:28:56

标签: python lxml lxml.objectify

我正在尝试使用方法实现由自定义对象化元素组成的xml。但是子元素似乎丢失了与之关联的方法。

尤其有效:

from lxml import etree, objectify
M = objectify.ElementMaker(annotate=False)

class A(objectify.ObjectifiedElement):
    def insert_b(self, text):
        self.B = M.Whatever(text)

some_xml = A(A())
some_xml.insert_b("Text")
etree.tostring(some_xml)

输出:

b'<A><A/><B>Text</B></A>'

但这不是:

>>> some_xml.A.insert_b("Text")
Traceback (most recent call last)
    ...
AttributeError: 'lxml.etree._Element' object has no attribute 'insert_b'

我期望的结果是b'<A><A><B>Text</B></A><B>Text</B></A>'

有没有一种方法可以实现?

0 个答案:

没有答案