[英]How to remove empty XML tags, containing whitespace only, in XML?
我需要刪除這樣的案例:
<text> </text>
我有在沒有空格時有效的代碼,但是如果有空格呢?
代碼:
doc = etree.XML("""<root><a>1</a><b><c></c></b><d></d></root>""")
def remove_empty_elements(doc):
for element in doc.xpath('//*[not(node())]'):
element.getparent().remove(element)
我還需要用 lxml 而不是 BeautifulSoup 來做。
此 XPath,
//*[not(*)][not(normalize-space())]
將 select 所有葉子元素只包含空白內容。
具體來說,對於您的示例,
<root><a>1</a><b><c></c></b><d></d></root>
這些元素將被選中: c
和d
。
對於還包含純空格元素的示例,
<root>
<a>1</a>
<b>
<c></c>
</b>
<d/>
<e> </e>
<f>
</f>
</root>
將選擇這些元素: c
、 d
、 e
和f
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.