什麼是xml?
xml即可擴充套件標記語言,它可以用來標記資料、定義資料型別,是一種允許使用者對自己的標記語言進行定義的源語言。
<?xml version="1.0" encoding="utf-8"?>
4python
測試
zope
從結構上,它很像我們常見的html超文字標記語言。但他們被設計的目的是不同的,超文字標記語言被設計用來顯示資料,其焦點是資料的外觀。它被設計用來傳輸和儲存資料,其焦點是資料的內容。
它有如下特徵:
首先,它是有標籤對組成,
標籤可以有屬性:
標籤對可以嵌入資料:abc
標籤可以嵌入子標籤(具有層級關係)
獲得標籤屬性
#coding=utf-8
import xml.dom.minidom
#開啟xml文件
dom = xml.dom.minidom.parse('abc.xml')
#得到文件元素物件
root = dom.documentelement
print root.nodename
print root.nodevalue
print root.nodetype
print root.element_node
mxl.dom.minidom 模組被用來處理xml檔案,所以要先引入。
xml.dom.minidom.parse() 用於開啟乙個xml檔案,並將這個檔案物件解析為dom變數。
documentelement 用於得到dom物件的文件元素,並把獲得的物件給root
每乙個結點都有它的nodename,nodevalue,nodetype屬性。
nodename為結點名字。
nodevalue是結點的值,只對文字結點有效。
nodetype是結點的型別,有以下型別:
現在有以下幾種:
nodetypes - 有名常數
<?xml version="1.0" encoding="utf-8"?>
4python
測試
zope
對於知道元素名字的子元素,可以使用getelementsbytagname方法獲取:
#coding=utf-8
import xml.dom.minidom
dom = xml.dom.minidom.parse('abc.xml')#開啟xml文件
#得到文件元素物件
root = dom.documentelement
#在dom樹中查詢指定元素
maxid_node = root.getelementsbytagname('maxid')[0]
<?xml version="1.0" encoding="utf-8"?>
4python
測試
zope
和
標籤不止乙個如何區分?
#coding=utf-8
import xml.dom.minidom
#開啟xml文件
dom = xml.dom.minidom.parse('abc.xml')
#得到文件元素物件
root_node = dom.documentelement
caption_nodes= root.getelementsbytagname('caption')
caption_node1= caption_nodes[0]
print caption_node1.nodename
item_nodes= root_node.getelementsbytagname('item')
item_node1= item_nodes[0]
print item_node1.nodename
root_node.getelementsbytagname('caption')
獲得的是標籤為caption 一組標籤,nodes[0]表示一組標籤中的第乙個;nodes2] ,表示這一組標籤中的第三個。
<?xml version="1.0" encoding="utf-8"?>
4python
測試
zope
和標籤是有屬性的,如何獲得他們的屬性?
#coding=utf-8
import xml.dom.minidom
#開啟xml文件
dom = xml.dom.minidom.parse('abc.xml')
#得到文件元素物件
root_node = dom.documentelement
login_nodes= root_node.getelementsbytagname('login')
login_node= login_nodes[0]
username=login_node.getattribute("username")
print username
pwd=login_node.getattribute("passwd")
print pwd
item_nodes= root_node.getelementsbytagname('item')
item_node1= item_nodes[0]
id1=item_node1.getattribute("id")
print id1
item_node2= item_nodes[1]
id2=item_node2.getattribute("id")
print id2
element物件的getattribute方法可以獲得元素的屬性所對應的值。 使用SAXReader解析xml資料
2 讀取xml資料 saxreader可以通過多種方式讀取xml資料,並返回document格式的物件。3 解析xml資料 讀取到document物件後,我們使用getrootelement 方法獲取根元素,返回的是乙個element物件。4 獲取子元素資料 獲取根元素後,便可以一層一層的去獲取他的...
python使用sax實現xml解析
之前在使用xml解析的時候,在網上搜了很多教程,最終沒有能按照網上的教程實現需求。所以呢,只好自己去看原始碼,在sax的 init py下看到這麼一段 1 def parse source,handler,errorhandler errorhandler 2 parser make parser ...
xml解析資料
import gdataxmlnode.h 引第三方標頭檔案 import jsonkit.h 引第三方標頭檔案 inte ce rootviewcontroller uiviewcontroller 協議 property nonatomic,retain nsmutablearray allst...