python libXML2删除项目

Ste*_*ano 3 python libxml2 removechild

我在python下使用libxml2.不幸的是,这个库的python版本真的很难记录,我在网上创建了几个例子,我可以理解一些方法.

我管理了很快添加一个XML节点.由于这个元素应该替换现有的元素,我想删除之前的一个,但我找不到删除孩子的方法.

有谁知道方法名称是什么?有没有人有关于这个图书馆的体面文件?

干杯

lar*_*sks 5

您可以使用该unlinkNode()方法删除给定节点.通常,大多数适用于节点的方法都有记录,请尝试:

pydoc libxml2.xmlNode
Run Code Online (Sandbox Code Playgroud)

因为unlinkNode,文件说:

unlinkNode(self)
    Unlink a node from it's current context, the node is not
    freed
Run Code Online (Sandbox Code Playgroud)

例如,给定此输入:

<html>
  <head>
    <title>Document Title</title>
  </head>
  <body>
    <div id="content">This is a test.</div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

您可以像这样解析文件:

>>> import libxml2
>>> doc = libxml2.parseFile('input.html')
Run Code Online (Sandbox Code Playgroud)

找到这样的<div>节点:

>>> node = doc.xpathEval('//*[@id="content"])[0]
Run Code Online (Sandbox Code Playgroud)

并删除它像这样:

>>> node.unlinkNode()
Run Code Online (Sandbox Code Playgroud)

现在,如果您打印出文档,您会得到:

>>> print doc
<head>            
    <title>Document Title</title>
</head>
<body>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)