1. 程式人生 > >python從XML裡取數,遍歷等

python從XML裡取數,遍歷等

#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,"},")

相關推薦

pythonXML

#coding=utf-8 #通過minidom解析xml檔案 import xml.dom.minidom as xmldom import os ''' XML檔案讀取 <?xml version="1.0" encoding="utf-8"?> <catalo

Python3學習(三十四):pythonmongo中資料使用pandas.DataFrame進行列操作並轉字典

使用該操作的具體場景(一般與mongo相結合): 比如mongo中存了幾萬條資料,需要將mongo中的資料取出來,並對其中的一列進行相關操作,最後轉化為字典格式。 具體程式碼實現如下: import pandas as pd import pymongo import

python中List(列表)的訪問新增刪除以及函式和方法的使用

一、list 1.對列表內容的建立,訪問,新增,刪除,替換 # -*- coding: UTF-8 -*- #使用[]建立一個名為L的list L=[1,2,3,4,5] #按照索引訪問第一個和最後一個元素 print L[0],L[-1] #使用append新增新元素時

迴圈佇列的順序儲存實現(入隊出隊清隊銷燬隊

迴圈佇列的順序儲存實現,包括入隊,出隊,清隊,銷燬隊,遍歷佇列等 佇列(queue)是一種先進先出(first in fist out,縮寫為FIFO)的線性表,它只允許在表的一端進行插入,而在另一端進行刪除元素。允許插入的一端稱為隊尾(rear),允許刪除的一

二叉樹的構建基本操作

#include"stdio.h" #include"stdlib.h" #include"string.h" typedef struct BTNode {         char data;      struct BTNode *lchild,*rchild; }B

Python資料庫對時間進行處理統計資料彙總後畫圖

#-*- coding: utf8 -*- import odbc import numpy as np import pylab as pl allDate = [] allData = [] if __name__ == '__main__': print("run success") a

python 鍵盤輸入一個字串將小寫字母全部轉換成大寫字母,將字串以列表的形式輸出(如果字串包含整數整型)?

str1 = input("請輸入任意字串: ") list1= [] #儲存字串 list2= [] #儲存數字 for i in str1: if i.isdigit() == True: #判斷當前字元是否為字元 list2.append(int(i)) else:

【hihocoder 1388】【區間DP】A Game【給出一個數列兩人每次數列的頭尾小ho 先小hi每次都採取最優策略問小ho最終能取得的的總和最大是多少】

描述 Little Hi and Little Ho are playing a game. There is an integer array in front of them. They take turns (Little Ho goes first) to select a number from

Python基礎day-6[函命名空間作用域]

必須 數據類型 一個 none locals 函數 嵌套 補充 元組 函數的返回值   通常有參函數是需要返回值的。  返回值的幾種形式:     1.如果函數內沒有return就返回None     2.return 返回的數據類型沒有限制,也可以返回多個值,

python模擬瀏覽器爬

wow64 request resp size stat apple 現在 form Language 爬蟲新手大坑:爬取數據的時候一定要設置header偽裝成瀏覽器!!!! 在爬取某財經網站數據時由於沒有設置Header信息,直接被封掉了ip 後來設置了Accep

輪流最大收益遊戲

ron pre ret 個人 pri 一個 splay 技術分享 aps 有一個整數串,有兩個人輪流取,每次可以取走一個前綴或後綴。兩人都足夠聰明,且都會使自己收益最大。求取完後先手收益。 import numpy as np from random import

day18 python學習 內置函匿名函裝飾器的

編碼 color 返回值 空字符 before 篩選 等於 是不是 執行函數 format的用法 print(format(‘aa‘,‘>20‘)) print(format(‘aa‘,‘<20‘)) print(format(‘aa‘,‘^20‘)) 打印

Python中whilefor循環及文件操作模塊操作

文件操作 rand 提示 don close choice line 轉發 字典 此內容本人原創,拒絕商業用途及他人轉發,嚴厲打擊有以上行為,發現後追究法律責任。print內調用變量 >> print "tom is %d,jerry is %d&q

pythonmysql導出據導excel

python excel 導出# coding:utf8import sys reload(sys)sys.setdefaultencoding('utf8')# author: 'zkx'# date: '2018/3/11'# Desc:從數據庫中導出數據

xml檔案

假設有個 test.xml,包含以下欄位: 1 <config> 2 <property name="login_protocol" value="http" /> 3 <property name="access_control" val

python 檔案中讀取資料同時去除掉空格和換行

從檔案中讀取資料,同時去除掉空格和換行,程式碼如下 import numpy as np def sort(path): w = open(path,'r') l = w.readlines() col=[] for k in l: k = k.strip('\n')

Python資料結構——二叉樹的(先根中根後根)

先序遍歷:根左右 中序遍歷:左根右 後序遍歷:左右根 # -*- coding:utf-8 -*- # file: TreeTraversal.py # class BTree: # 二叉樹節點 def __init__(self, value):

自定義截字符串返回字符串組。

pre stat oid ons emp color ntc 方案 定義 今天早上一個朋友請教我給一串字符串,截取數(比如3,截取數可自定義) 每3個截取一次,截取到後面小於3位的一樣保留到字符串數組裏。 想了一下 寫了一個通用方法,記錄一下,給有用的朋友參考(不喜勿噴,

python對同一個資料夾下進行操作跳過處理過的

import os path="路徑" #此處路徑為包含你要處理檔案的路徑 for filename in os.listdir(path): (fname,fename)=os.path.splittext(filename) if(fename=='.j

根據class獲取同一個類的值返回時一個數組

<div class="text-cont">第1條</div> <div class="text-cont">第2條</div> <div class="text-cont">第3條</div> <div class="