python取xml值_python从XML里取数,遍历等

#coding=utf-8

#通过minidom解析xml文件

importxml.dom.minidom as xmldomimportos'''XML文件读取

4

dasdas

Python测试Zope

'''

'''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)deffindNodeIndex(node):for i inrange(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 inrange(len(subElementObj)):if(subElementObj[i].getAttribute("type")=='twaver.Node'):

sub2=subElementObj[i].getElementsByTagName("p")for j inrange(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 inrange(len(subElementObj)):if(subElementObj[i].getAttribute("type")=='twaver.Link'):

sub3=subElementObj[i].getElementsByTagName("c")for j inrange(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,"},")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值