如何使用python仅解析XML中的某些信息

如何使用python仅解析XML中的某些信息,python,python-3.x,xml,minidom,Python,Python 3.x,Xml,Minidom,我有一个简单的小问题,我只需要解析标记的一小部分。 因此,当分析“硬件版本”时,终端输出为:“TREE M-5TX IP67 1.00” 但我只想要1.00而不是“TREE M-5TX IP67”部件 有人知道怎么做吗? 请给我一个例子,我是一个初学者,因此任何帮助将是很好的。 如果我没有正确使用某些术语,我很抱歉 # open webpage and read values xml_str = urllib.request.urlopen(url_str).read() # Parses X

我有一个简单的小问题,我只需要解析标记的一小部分。 因此,当分析“硬件版本”时,终端输出为:“TREE M-5TX IP67 1.00” 但我只想要1.00而不是“TREE M-5TX IP67”部件

有人知道怎么做吗? 请给我一个例子,我是一个初学者,因此任何帮助将是很好的。 如果我没有正确使用某些术语,我很抱歉

# open webpage and read values
xml_str = urllib.request.urlopen(url_str).read()

# Parses XML doc to String for Terminal output
xmldoc = minidom.parseString(xml_str)

# prints the order_number from the xmldoc
order_number = xmldoc.getElementsByTagName('order_number')
ord_nmr = order_number[0].firstChild.nodeValue

# prints the firmware_version from the xmldoc
firmware_version = xmldoc.getElementsByTagName('firmware_version')
frm_ver = firmware_version[0].firstChild.nodeValue

# prints the hardware_version from the xmldoc
hardware_version = xmldoc.getElementsByTagName('hardware_version')
hrd_ver = hardware_version[0].firstChild.nodeValue

# prints the mac_address from the xmldoc
mac_address = xmldoc.getElementsByTagName('mac_address')
mac_addr = mac_address[0].firstChild.nodeValue

print("Current device information: ")
print("Order-number: ",ord_nmr, "Software-version: ",frm_ver, "Hardware version: ",hrd_ver, "MAC address: ",mac_addr)

终端输出如下所示:


订单号:58183软件版本:1.1.0(内部版本:1)硬件版本:TREE M-5TX IP67 1.00 MAC地址:00:0F:9E:F3:F8:A0

您尚未给出区分所需零件的规则或规范(“本例中为1.00”)从其余部分开始,您应该查看“hardware_version”的所有其他可能值,并定义一条一般规则

在此情况下,我将假设您想要的部分由空格(一个或多个空格或制表符)与其余部分隔开,并且它是最后一段非空格文本。使用此规则,可以很容易地拆分您所拥有的内容并检索最后一个元素:

# prints the hardware_version from the xmldoc
hardware_version = xmldoc.getElementsByTagName('hardware_version')
hrd_ver = hardware_version[0].firstChild.nodeValue
v = hrd_ver.split()[-1]

v
将为“1.00”。默认情况下,
split
函数在空格上拆分,并返回一个字符串数组,我们只需选择最后一个。

非常感谢您,我非常感谢它的帮助