在python中打印子节点及其xml标记

2024-05-21 10:39:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为m.xml的文件,其中包含以下内容:

<volume name="sp" type="span" operation="create">
    <driver>HDD1</driver>
    <driver>HDD2</driver>
    <driver>HDD3</driver>
    <driver>HDD4</driver>
</volume>

我想得到如下结果:

^{pr2}$

我尝试使用以下代码

import xml.etree.ElementTree as ET
root = ET.parse('m.xml')
for nod in root.findall("./driver"):
    print nod.text

我得到以下结果:

HDD1
HDD2
HDD3
HDD4

如何获取标签,而不仅仅是文本值?在


Tags: 文件nametypedriverrootxmlspet
2条回答

要将元素显示为XML文本,请使用^{} function

import xml.etree.ElementTree as ET
root = ET.parse('m.xml')
for nod in root.findall("./driver"):
    print ET.tostring(nod)

演示:

^{pr2}$

使用BeautifulSoup解析XML。很简单:

from bs4 import BeautifulSoup as Soup

with open("sample.xml", "r") as f:
    target_xml = f.read()

# create a `Soup` object
soup = Soup(target_xml, "xml")                                                                                                        

# loop through all <driver> returned as a list and prints all 
for d in soup.find_all("driver"):
    print(d)

相关问题 更多 >