#coding=utf-8 #通过minidom解析xml文件
import xml.dom.minidom as xmldom
import os
'''
XML文件读取
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>dasdas
<caption>Python</caption>
<item id="4">
<caption>测试</caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog> '''
'''
x_path="E:\\doc\\项目文档\\广东\\拓扑图\\test.xml"
xmlfilepath = os.path.abspath(x_path)
print ("xml文件路径:", xmlfilepath) # 得到文档对象
domobj = xmldom.parse(xmlfilepath)
print("xmldom.parse:", type(domobj))
# 得到元素对象
elementobj = domobj.documentElement
print ("domobj.documentElement:", type(elementobj)) #获得子标签
subElementObj = elementobj.getElementsByTagName("login")
print ("getElementsByTagName:", type(subElementObj)) print (len(subElementObj))
# 获得标签属性值
print (subElementObj[0].getAttribute("username"))
print (subElementObj[0].getAttribute("passwd")) #区分相同标签名的标签
subElementObj1 = elementobj.getElementsByTagName("caption")
for i in range(len(subElementObj1)):
print ("subElementObj1[i]:", type(subElementObj1[i]))
print (subElementObj1[i].firstChild.data) #显示标签对之间的数据
''' x_path="E:\\doc\\项目文档\\广东\\拓扑图\\index.do.xml"
nodes=list()
xmlfilepath = os.path.abspath(x_path)
def findNodeIndex(node):
for i in range(len(nodes)):
if(nodes[i]==node):
return str(i) # +":"+nodes[i] print ("xml文件路径:", xmlfilepath)
# 得到文档对象
domobj = xmldom.parse(xmlfilepath)
print("xmldom.parse:", type(domobj))
# 得到元素对象
elementobj = domobj.documentElement
#print ("domobj.documentElement:", type(elementobj))
subElementObj = elementobj.getElementsByTagName("data")
print(len(subElementObj))
for i in range(len(subElementObj)):
if(subElementObj[i].getAttribute("type")=='twaver.Node'):
sub2=subElementObj[i].getElementsByTagName("p")
for j in range(len(sub2)):
if(sub2[j].getAttribute("n")=='name'):
node=sub2[j].firstChild.data.replace('...','')
print("{name:'",node,"',draggable: true,},")
nodes.append(node)
print("nodes len:",len(nodes))
for i in range(len(subElementObj)):
if(subElementObj[i].getAttribute("type")=='twaver.Link'):
sub3=subElementObj[i].getElementsByTagName("c")
for j in range(len(sub3)):
node=sub3[j].firstChild.data.replace('...','')
iNode=findNodeIndex(node)
if(sub3[j].getAttribute("n")=='aNode'):
#print(sub3[j].firstChild.data ,' ',iNode, end='')
print('{source:',iNode, end='')
elif(sub3[j].getAttribute("n")=='zNode'):
#print(sub3[j].firstChild.data,' ',iNode)
print(",target:",iNode,"},")