<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/