python - 使用 Python minidom 解析 XML

标签 python xml parsing minidom

 <PacketHeader>   
     <HeaderField>
        <name>number</name>
        <dataType>int</dataType>
     </HeaderField>
 </PacketHeader>

这是我的小 XML 文件,我想提取名称标签内的文本。

这是我的代码片段:-

from xml.dom import minidom
from xml.dom.minidom import parse

xmldoc = minidom.parse('sample.xml')
packetHeader = xmldoc.getElementsByTagName("PacketHeader")
headerField = packetHeader.getElementsByTagName("HeaderField")
for field in headerField:
    getFieldName = field.getElementsByTagName("name")
    print getFieldName

但是我得到了位置,但没有得到文本。

最佳答案

from xml.dom import minidom
from xml.dom.minidom import parse

xmldoc = minidom.parse('sample.xml')

# find the name element, if found return a list, get the first element
name_element = xmldoc.getElementsByTagName("name")[0]

# this will be a text node that contains the actual text
text_node = name_element.childNodes[0]

# get text
print text_node.data

请检查一下。

更新

顺便说一句,我建议您ElementTree,下面是使用 ElementTree 的代码片段,它与上面的 minidom 代码执行相同的操作

import elementtree.ElementTree as ET

tree = ET.parse("sample.xml")

# the tree root is the toplevel `PacketHeader` element
print tree.findtext("HeaderField/name")

关于python - 使用 Python minidom 解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25419242/

相关文章:

python - 无法读取未定义的 Dash DataTable 的属性 'fantasy-land/map' 使用下拉列表更新表

python - 如何显示列表中字符串的重复项

parsing - 在 UNIX 中创建二进制文件

Java 字符串到日期转换为 null,写入 SQL 数据库问题

python - 使用 matplotlib.pyplot.plot_date 绘制多数据集

python - jinja2 嵌套变量

c# - 如何从 XML 中获取值?

javascript - 将特殊的 HTML 字符插入 XML

xml - 如何使用 shell 脚本提取 xml 属性?

google-maps - 使用 geoxml3 集群 kml 文件