XML的解析與編寫

2021-09-26 20:20:44 字數 1893 閱讀 8706

1導入庫

import xml.etree.elementtree  as et
2例項化物件
tree = et.elementtree()

tree.parse("test.xml")

root = tree.getroot() #獲取所有節點

root.tag #該節點的標籤

root[0].tag #該節點第乙個子節點的標籤

root[0][0][1][0] #該節點的一子節點的一子節點的二子節點的一子節點的。但是沒必要這樣,直接find(),findall()即可。

val = root.find('root.tag').text #標籤裡的內容

root.attrib #節點屬性

len(root) #該節點所包含的子節點數

root.find('name').text #訪問該標籤裡的內容,注意字串要和標籤一致。

鏈結1

python官方文件 示例

xml文件,test.xml

<?xml version="1.0" encoding="iso-8859-1"?>

12008

141100

42011

59900

682011

13600

解析**

import xml.etree.elementtree as et

tree = et.elementtree() #例項化

tree.parse('test.xml') #解釋文件

root = tree.getroot() #獲取所有節點

print(root.tag)#獲取第乙個標籤 data

print(len(root)) #獲得root有多少個一級子節點,即3個country子節點

countrys = root.findall('country') #找到所有的country標籤,並返回乙個列表list訪問位置資訊

print(countrys[0].attrib) #第0位置標籤的屬性

print(countrys[1].attrib) #第1位置標籤的屬性

#通過for迴圈

for country in countrys:

print(country.attrib)

print(countrys[0].find('rank').text) #通過標籤尋找下乙個子節點

print(countrys[1].find('rank').text) #通過標籤尋找下乙個子節點

from lxml import etree

root = etree.element(

'root'

)#根目錄

head = etree.subelement(root,

'head'

)#root的子節點head

title = etree.subelement(head,

'title'

)#head的子節點title

title.text =

'123'

#title的內容為123

tree = etree.elementtree(root)

#不知道,但要有

tree.write(

'test.xml'

, pretty_print=

true

, xml_declaration=

false

, encoding=

'utf-8'

)#pretty_print 是否美化xml,xml_declaration 是否要第一行的對xml版本的介紹

xml檔案的編寫 解析和元素定義

最近接手乙個專案的三期改造,是外包公司編寫,交由我方先做第三期改造,看到專案中有用到自定義的 dtd 檔案,以前沒見過,做了一下總結 1.專案中乙個 dtd 檔案demo 檔名cache dict.dtd version 1.0 encoding utf 8 dicts dict dict from...

XML的解析與生成

1.寫布局 2.業務邏輯 a.備份 1.封裝簡訊資料到list中 2.將list中的資料寫到xml檔案中。b.恢復 1.解析xml檔案中簡訊資料,封裝到list集合中 2.將解析資料列印。xmlserializer 使用xmlserializer來序列化xml檔案 public static boo...

XML的生成與解析

1 員工工具類 class emp public emp int id,string name,int age,string gender,int salary public int getid public void setid int id public string getname publi...