首页 > 技术文章 > 【python】在用dom读取xml文件的文档对象、元素对象的类型(用的type())时 出现<type 'instance'> 而不是具体类型时?

anno-ymy 2019-03-14 15:10 原文

参考

获取python对象的类型名字 不希望全都只显示<type 'instance'>?

type() 和 isinstance() 的区别

python中的 type 与 object】(篇幅比较大)

 

  当使用type() 查看变量的类型名时,一般都显示诸如:‘str’ 'int'等类型名;

  但是当变量是一个对象的实例时,使用type() 得到的类型名都显示为<type 'instance'>

  此时,若想得到该对象实例的类型名,需要使用 '.__class__' 来获得类型名。

  下面,举个例子。

 

 【举例】【在用dom读取xml文档时】

xmlfilepath = os.path.abspath("test_g2.xml")
print "xml文件路径:", xmlfilepath

# 得到文档对象
domobj = xmldom.parse(xmlfilepath)
print "xmldom.parse:", type(domobj)
print "xmldom.parse:", domobj.__class__

# 得到元素对象
elementobj = domobj.documentElement
print "domobj.documentElement:", type(elementobj)
print "domobj.documentElement:", elementobj.__class__

#获得子标签
subElementObj = elementobj.getElementsByTagName("login")
print "getElementsByTagName:", type(subElementObj)

 

【输出 对比】

xml文件路径: D:\pypro\venv\nlpdata\test_g2.xml

xmldom.parse: <type 'instance'>
xmldom.parse: xml.dom.minidom.Document

domobj.documentElement: <type 'instance'>
domobj.documentElement: xml.dom.minidom.Element

getElementsByTagName: <class 'xml.dom.minicompat.NodeList'>

 

 

 

其他待补充

 

推荐阅读