【问题标题】:lxml - insert nested Elementlxml - 插入嵌套元素
【发布时间】:2016-11-02 16:38:01
【问题描述】:

我知道添加子元素可以使用element.insert(old_element, new_element) 完成,并且可以通过顺序替换父元素一直到根来插入嵌套子元素 - 但是有没有这样做的函数或方法说父母替代?即

>>> et.tostring(el) 
>>>>
"""
<b>
    <c/>
    <c/>
    <d>
        <e/>
            <p>
                <a>
                    <q/>
                    <q/>
                <a/>
            </p>
        <e/>
    <d>
    <c/>
    <c/>
<b>
"""
>>>> new = insert_nested_child_element(el, "./d/e/p/a", 3, et.Element('new'))
>>>> et.tostring(new)
"""
<b>
    <c/>
    <c/>
    <d>
        <e/>
            <p>
                <a>
                    <q/>
                    <q/>
                    <new/>
                <a/>
            </p>
        <e/>
    <d>
    <c/>
    <c/>
<b>
"""

【问题讨论】:

  • 您能否在前后添加示例 XML 以进行演示?谢谢。
  • 是的 - 已经完成了。

标签: python xpath nested lxml element


【解决方案1】:

子元素携带根树数据,所以要获取更新的根使用updated_subelement.getroottree().getroot():

>>> nested_child_parent_results = el.xpath("./d/e/p/a")
>>> nested_child_parent = nested_child_parent_results[0]
>>> nested_child_parent.getroottree().getroot()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多