如何在python中从XML文件中读取注释文本

2024-06-28 20:22:10 发布

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

我能够使用“导入”读取xml文件xml.etree.ElementTree文件作为et'。但我的问题是读取数据文件中给出的注释文本,如何读取: 例如,在下面的xml中,我想阅读BaseVehicleis1997 Cadillac Catera

<App action="A" id="1">
    <BaseVehicle id="8559"/>
    <!--  1997 Cadillac Catera  -->
    <Qty>1</Qty>
    <PartType id="4472"/>
    <!--  Electrical/Headlight/Switch  -->
    <Part>SW1406</Part>
</App>

Tags: 文件文本idappactionxml读取数据et
1条回答
网友
1楼 · 发布于 2024-06-28 20:22:10

ElementTree的标准行为是忽略注释。但是,可以通过使用自定义解析器对象来保留注释。这在Python 3.8中变得更容易了,可以将xml.etree.ElementTree.TreeBuilder目标配置为处理注释事件,以便将它们包含在生成的树中。你知道吗

from xml.etree import ElementTree as ET

parser = ET.XMLParser(target=ET.TreeBuilder(insert_comments=True)) # Python 3.8
tree = ET.parse("app.xml", parser)

# Get the comment nodes
for node in tree.iter():
    if "function Comment" in str(node.tag): 
        print(node.text)

输出:

  1997 Cadillac Catera  
  Electrical/Headlight/Switch  

对于较早版本的Python,需要更多的代码。见Faithfully Preserve Comments in Parsed XML。你知道吗

相关问题 更多 >