You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python获取无空白XML内部内容是否有更简便实现方法?

更简便的XML内部内容提取方案

哎,刚好我也遇到过类似的需求!你现在用的字符串处理方式虽然能实现目标,但确实有点繁琐,其实Python里有更简洁的实现思路,甚至有类似PowerShell InnerXML 属性的解决方案,分两种情况给你说明:

一、使用标准库 xml.etree.ElementTree 优化实现

标准库本身没有直接的InnerXML属性,但我们可以直接遍历<head>的子元素,把每个子元素的XML字符串拼接起来,这样天然就避免了多余的空白和外层<head>标签:

import xml.etree.ElementTree as ET

root = ET.parse('myfile.xml').getroot()
# 定位到head元素
head_element = root.find('head')
# 拼接所有子元素的XML字符串,直接得到目标内容
header = ''.join(ET.tostring(child, encoding='unicode') for child in head_element)

这个方法不用做任何正则替换或字符串截取,因为ET.tostring()默认输出的就是紧凑格式的XML,不会包含多余的换行和空格,比你之前的写法更简洁也更可靠。

二、使用第三方库 lxml 直接调用 innerxml()

如果你可以引入第三方库,lxml(一个功能更强大的XML处理库)的元素对象自带innerxml()方法,完全和PowerShell的InnerXML属性一样,一步就能拿到元素内部的XML字符串:

from lxml import etree

tree = etree.parse('myfile.xml')
head_element = tree.find('head')
# 直接获取内部XML,无需额外处理
header = head_element.innerxml()

这个方式最接近你想要的“类似PowerShell InnerXML”的体验,代码极简且可读性高。

内容的提问来源于stack exchange,提问作者Bagheera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:32:34