【问题标题】:Delete a node lxml python删除一个节点 lxml python
【发布时间】:2013-10-04 15:27:19
【问题描述】:

我在 XML 文件中找到了很多 remove element node 的示例。但是这里是一个例子,我在stackoverflow或google上都没有找到任何解决方案。 例如:

<slide>
    America
    <a> 2 </a>
    <b> 3 </b>
    <c> 4 </c>
</slide>

<slide>
    Germany
    <a> 5 </a>
    <b> 6 </b>
    <c> 7 </c>
</slide>

我会使用remove 函数来删除一个元素节点,因为我使用的是lxml。但是现在我必须删除实际上不是元素节点而是文本的“America”和“Germany”。

有没有办法像任何功能一样删除它??

我目前正在使用 python lxml 库。

输出应该是这样的:

 <slide>
     <a> 2 </a>
     <b> 3 </b>
     <c> 4 </c>
 </slide>

 <slide>
     <a> 5 </a>
     <b> 6 </b>
     <c> 7 </c>
 </slide>

【问题讨论】:

    标签: python python-2.7 lxml nodes removechild


    【解决方案1】:

    使用text 属性。例如:

    html = '''...
    <slide>
        America
        <a> 2 </a>
        <b> 3 </b>
        <c> 4 </c>
    </slide>
    
    <slide>
        Germany
        <a> 5 </a>
        <b> 6 </b>
        <c> 7 </c>
    </slide>
    ....'''
    
    import lxml.html
    root = lxml.html.fromstring(html)
    for slide in root.xpath('.//slide'):
        slide.text = ''
    

    【讨论】:

    • @SangameshHs:说同样事情的快捷方式是接受按钮:P
    • 大声笑..好吧,在接下来的 6 分钟内我无法接受答案:P :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 2013-05-20
    相关资源
    最近更新 更多