簡體   English   中英

我如何遍歷ElementTree並刪除所有 <mark> 標簽?

[英]How do I iterate through ElementTree and delete all <mark> tags?

所以我有一個大的xml文件,其中包含我正在解析的數據。 下面是一個示例:

<statement>
<plist>
<p>Hello Stack Overflow.</p>
<p>This doesn't <mark type="NA" /> seem to work!</p>
</plist>
</statement>

我開發的程序僅返回“ Hello Stack Overflow。這不是”。為了解析其余的行,我想在解析之前刪除mark標簽。 使用root.findall('.// mark')函數,我可以找到標記,但是在遍歷findall函數的返回值時,root.remove(marks)不起作用,因為從根到這些標記的路徑未知。 我還嘗試找到所有p標簽實例,並在它們的標記標簽中進行搜索,然后使用“ p tag” .remove(“ mark tag”)刪除它們,這並沒有失敗,但是似乎也沒有。 有什么建議么?

這不是要求lxml導入的任何內容的重復,因為它可以沒有依賴關系,必須僅使用元素樹功能來解決。

ElementTree將<mark />之前的文本解析為包含p標簽的'text'屬性,並將其后的文本解析為mark標簽的'tail'屬性。

解決方案是找到p標簽,在其中查找mark標簽,然后在刪除該mark之前,將其tail值附加到包含p的文本中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM