我有一个简单的小问题,我只想要解析标记的一小部分。因此当";硬件版本正在被解析,终端输出是:;TREE M-5TX IP67 1.00";但我只想要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]
CCD_ 1将是"0";1.00";。默认情况下,split
函数在空白处进行拆分,并返回一个字符串数组,我们只选择最后一个。