如何使用Python的xml.etree.ElementTree将XML子元素标签名以逗号分隔格式单行输出
解决XML子元素标签名单行输出的问题
嘿,我来帮你搞定这个需求!你当前的代码会逐行打印标签名,是因为每次调用print()都会自动添加换行符。要实现逗号分隔的单行输出,咱们只需要先把所有目标标签名收集到一个列表中,再用逗号把它们拼接成一个字符串后一次性打印即可。
修改后的代码如下:
import xml.etree.ElementTree as ET data = ''' <job_details> <role> <name>Vikas</name> <salary>$5.95</salary> <job_description>Developer</job_description> </role> <role> <name>Dip</name> <salary>$7.95</salary> <job_description>Backend Developer</job_description> </role> </job_details> ''' xml_parsing = ET.fromstring(data) # 收集第一个<role>节点下所有子元素的标签名到列表 tag_list = [sub.tag for sub in xml_parsing[0]] # 用逗号拼接列表元素并打印单行结果 print(','.join(tag_list))
代码说明:
- 用列表推导式
[sub.tag for sub in xml_parsing[0]]快速收集第一个<role>下所有子元素的标签名,避免逐行打印的问题。 - 用字符串的
join()方法,把列表中的标签名用逗号连接成一个完整的字符串,最后打印就能得到你想要的name,salary,job_description单行结果。
如果你的XML中所有<role>节点的子元素结构都一致,那么只取第一个<role>的子元素标签名就足够啦~
内容的提问来源于stack exchange,提问作者cafopa2172
相关产品推荐
相关产品推荐

