如何在XML中删除仅包含空格的空XML标记?

问题描述 投票:0回答:1

我需要删除这种情况:

<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。

python python-3.x xml lxml elementtree
1个回答
0
投票

此XPath,

//*[not(*)][not(normalize-space())]

将选择所有空间标准化字符串值为空的叶子元素。

对于您的示例,将选择这些节点:

<c></c>
<d></d>
© www.soinside.com 2019 - 2024. All rights reserved.