簡體   English   中英

如何刪除 XML 中僅包含空格的空 XML 標簽?

[英]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>

這些元素將被選中: cd

對於還包含純空格元素的示例,

<root>
  <a>1</a>
  <b>
    <c></c>
  </b>
  <d/>
  <e>     </e>
  <f>
  </f>
</root>

將選擇這些元素: cdef

暫無
暫無

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

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