python 生手 错求解析!读取文件数据,用xml进行数据提取,解析出‘PacketName’信息

python 新手 错求解析!!读取文件数据,用xml进行数据提取,解析出‘PacketName’信息。
文件部分内容
XML</PacketName><NodeId>0.000000</NodeId><Port>0.000000</Port><RawPacket>0x7E0003531400000000000003E224020300FF04D40500FF04DD</RawPacket><ParsedDataElement><Name>amtype</Name><RawValue>0x03</RawValue><RawValueType>uint8</RawValueType><ConvertedValue>3</ConvertedValue><ConvertedValueType>uint8</ConvertedValueType></ParsedDataElement><ParsedDataElement><Name>groupid</Name><SpecialType>groupid</SpecialType><RawValue>0x53</RawValue><RawValueType>uint8</RawValueType><ConvertedValue>83</ConvertedValue><ConvertedValueType>uint8</ConvertedValueType></ParsedDataElement><ParsedDataElement><Name>sourceaddr</Name><RawValue>0x0000</RawValue><RawValueType>uint16</RawValueType><ConvertedValue>0</ConvertedValue><ConvertedValueType>uint16</ConvertedValueType></ParsedDataElement><ParsedDataElement><Name>nodeid</Name><SpecialType>nodeid</SpecialType><RawValue>0x0000</RawValue><RawValueType>uint16</RawValueType><ConvertedValue>0</ConvertedValue><ConvertedValu10eType>uint16</ConvertedValueType></ParsedDataElement><ParsedDataElement><Name>socketid</Name><RawValue>0x03</RawValue><RawValueType>uint8</RawValueType><ConvertedValue>3</ConvertedValue><ConvertedValueType>uint8</ConvertedValueType></ParsedDataElement><ParsedDataElement><Name>packet_version</Name><RawValue>0x01</RawValue><RawValueType>uint8</RawValueType><ConvertedValue>1</ConvertedValue><ConvertedValueType>uint8</ConvertedValueType></ParsedDataElement><ParsedDataElement><Name>router_type</Name><SpecialType>routertype</SpecialType><RawValue>0x01</RawValue><RawValueType>uint8</RawValueType><ConvertedValue>1</ConvertedValue><ConvertedValueType>uint8</ConvertedValueType></ParsedDataElement><ParsedDataElement><Name>baseid</Name><SpecialType>baseid</SpecialType><RawValue>0x01</RawValue><RawValueType>uint8</RawValueType><ConvertedValue>1</ConvertedValue><ConvertedValueType>uint8</ConvertedValueType></ParsedDataElement><ParsedDataElement><Name>node_count</Name><RawValue>0x02</RawValue><RawValueType>uint8</RawValueTy11

编程:
import xml.dom.minidom

def get_tagname():
f = open('clientanalyze.txt','r')
a = str(f.readlines())
doc = xml.dom.minidom.parseString(a)
print doc
for doc in doc.getElementsByTagName("PacketName"):
print 'PacketName',node
f.close()
def test():
g = get_tagname()

if __name__ == '__main__':
test()

Traceback (most recent call last):
  File "C:\Users\lili\Desktop\analxml-shiyanban.py", line 15, in <module>
    test()
  File "C:\Users\lili\Desktop\analxml-shiyanban.py", line 12, in test
    g = get_tagname()
  File "C:\Users\lili\Desktop\analxml-shiyanban.py", line 6, in get_tagname
    doc = xml.dom.minidom.parseString(a)
  File "C:\Python27\lib\xml\dom\minidom.py", line 1928, in parseString
    return expatbuilder.parseString(string)
  File "C:\Python27\lib\xml\dom\expatbuilder.py", line 940, in parseString
    return builder.parseString(string)
  File "C:\Python27\lib\xml\dom\expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
ExpatError: syntax error: line 1, column 0
------解决思路----------------------
是你的xml文件有错误。
------解决思路----------------------
美铝  你xml文件 开头是 “XML”三个字符啊?
------解决思路----------------------


a = str(f.readlines())
doc = xml.dom.minidom.parseString(a)



替换成

doc = xml.dom.minidom.parseString(f.read())