0
所以我有一个大的XML文件,我解析出数据。下面是一个例子:如何迭代ElementTree并删除所有<mark>标签?
<statement>
<plist>
<p>Hello Stack Overflow.</p>
<p>This doesn't <mark type="NA" /> seem to work!</p>
</plist>
</statement>
我已经开发了只返回节目“你好,堆栈溢出这不” 为了解析行的其余部分,我想在之前移除标记标签解析。使用root.findall('。mark')函数时,我能够找到标记,但在遍历findall函数的返回时无法运行,因此root.remove(标记)不起作用,因为从根到这些标记的路径是未知的。我也试图找到p标签的所有实例并搜索它们的标记标签,然后使用“p标签”.remove(“标记标签”)将其删除,但这并没有失败,但似乎也没有工作。有什么建议么?
这不是任何需要lxml导入的重复工作,因为这可能没有依赖关系,只能使用元素树功能来解决。
要删除元素,显然需要知道元素的* parent *。你看过'ElementTree'元素上的可用方法吗? – larsks
是的,没有直接的方式来访问父节点。但正如我之前所说的,所有标记标签都位于p标签所包含的文本中。因此,通过遍历所有p标签并检查是否包含'mark',我可以找到父节点(p标签)并使用它去除标记标签。但是,在完成此操作并试图解析文本之后,文本在标记标记(或仍然存在)的位置仍然会切断。所以我有点不知所措。 – JJJ1106
*有一种直接访问父节点的方式。 – larsks